二进制
-1表示:
1、先看+1表示 0001
2、再-1 0000
3、取反 1111
反推:
1000:
符号位为1,表示负数
然后000取反111
然后+1 当做无符号状态 1000表示的是8
所以1000表示-8
0b可以直接定义二进制的数据
十六进制
0x开头代表十六进制,二进制转换为十六进制,4位表示十六进制的1位
相反数是任何原来数取反+1
负数的最小值找不到相反数
整数最小值取绝对值还是自己
取反符号~
<< 左移 右侧补零
>> 右移 左侧用符号位补
>>> 右移 左侧补零
非负数 << 1 等于*2
非负数 << 2 等于*4
非负数 << i 等于*2的i次方
非负数 >> i 等于除以2的i次方
^异或 不同的是1,相同的是0
位运算 | & ^ ~
逻辑或与 || &&,会断路,效率高
为什么这么设计二进制
为了不管数字符号都统一加法逻辑
位运算中加法可以实现其他的-*/逻辑
打印二进制函数逻辑
num &(1 << i) ==0 ?0:1
注意溢出问题