1代表True,0代表False
按位与: 同为1为1,不同为0 (用途清零)
按位或: 同为0位0,不同为1
按位异或: 相同为0,不同为1
左移《 *2次幂,右边补零;eg: 2<<5=2^5 = 32
右移》 /2次敏,正左边补零,负左边补负1; eg 16>>2=16/(2^2)=4
原码:绝对值整数的二进制位源码
反码:源码按位取反
(1)反码是二进制数的反码,不是整数的反码;
(2)数在计算机中的表示形式可以是补码、原码、反码,但是负数采用了其正数的补码形式表示。详细如下:
一、原码 反码 补码都是指的数的一种二进制表示形式,
因此整数的表示方式有三种:原码 反码 补码
例如:5的原码00000000 00000000 00000000 00000101
11111111 11111111 11111111 11111010是(原码)00000000 00000000 00000000 00000101的反码,不是(整数)5的反码
5的反码表示形式是00000000 00000000 00000000 00000101,是根据定义(正数的补码和原码一样)来的,无法改变的。
-5 在计算机中表达为:11111111 11111111 11111111 11111011(以其正数的补码形式表示)转换为十六进制:0xFFFFFFFB。
而-5的原码是10000000 00000000 00000000 00000101
上面讲的都是32bit的。
再说明个一个字节(8bit)的例子
+7的原码为: 00000111 +7的反码为:00000111 +7的补码为: 00000111
-7的原码为: 10000111 -7的反码为: 11111000 -7的补码为: 11111001
-7在计算机中的二进制是如何表示呢,根据定义负数以其正数的补码形式表示 过程如下:
原码00000111->(二进制的,不是7的)反码11111000->补码11111001,就是-7的补码形式