黑马程序员技术交流社区
标题: 位运算符介绍(一) [打印本页]
作者: 三月小雨 时间: 2015-8-10 21:26
标题: 位运算符介绍(一)
iOS基础-学习笔记83
12-为什么要引入反码、补码?
首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值取余的加减。(其值的概念在本文最开头)但是对于计算机,加减乘数已经是最基础的运算,要设计的尽量简单,计算机辨别“符号位“显然会让计算机的基础电路设计变得十分复杂!于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数,即:1-1=1+(-1)=0,所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。
14-位运算符介绍(一)
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。
C语言提供了6个操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
(1) & 按位与
只有对应的两个二进制位均为1时,结果位才为1,否则为0 口诀:同为1为1
例如:9&13=9
1001
& 1101
1001
(2) | 按位或
只要对应的二个二进位有一个为1时,结果位就为1,否则为0
1001
| 1101
1101
(3) ^ 按位异或
当对应的二进制位相异(不相同)时,结果为1,否则为0
1001^ 1101
0100
(4)~取反
各二进位进行取反(0变1,1变0)
~9=-10
9的原码:0000 0000 0000 0000 0000 0000 0000 1001
反码:1111 1111 1111 1111 1111 1111 1111 0110 //-10
知道补码求原码:也是符号位不变,其他各位取反+1
1111 1111 1111 1111 1111 1111 1111 0110
取反
1000 0000 0000 0000 0000 0000 0000 1001
+1
1000 0000 0000 0000 0000 0000 0000 1010 //-10
作者: 飓风少年 时间: 2015-8-10 21:27
只是不懂补码,反码的具体用处是什么
作者: 三月小雨 时间: 2015-8-10 21:29
自己顶沙发
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |