原、反和补码
原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
1bit 存储 0或者1;8bit = 1byte 00000000红色的为符号位,0为正,1为负数
最大值:0111 1111
最小值:1111 1111
原码的弊端:当符号位为1时也就是为负数时,二进制+1转换为十进制时候全为负数且得不到正确的结果
反码:正数的补码反码是其本身,负数的反码是其符号位不变其余位置取反
为了解决原码不能计算负数的问题而出现的
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变数值取反,0变1,1变0
例如:-56 原码:1011 1000 反码:1100 0111
-56+1 = 1100 1000
反码的弊端:计算机进行运算时,会将0的两种表现形式1111 1111和0000 0000表现出来,从而导致运算错误,所以引入了补码来解决负数反码运算时候跨0的这一问题(正数和负数的运算问题)
补码:正数的补码是其本身,负数的补码是在其反码的基础上+1
-128 无原码、反码、补码为(1000 0000)
数据在计算机中的存储和计算都是以补码的形式进行的
位操作符
运算符 | 含义 | 运算规则 |
& | 逻辑与 | .... |
| | 逻辑或 | .... |
<< | 右移 | 向左移动,低位补0 |
>> | 左移 | 向右移动,高位补0或1(根据正负补1或者0) |
>>> | 无符号右移 | 向右移动,高位补0 |
左移相当于乘以2,右移相当于除以2