&运算:上下相等才是1,有一个不同就是0
|运算:只要有1返回的就是1
^(亦或)运算:上下不同是1,相同是0
~运算:非运算,与数据全相反
cpu核心运算原理,四种cpu底层小电路
例:&电路:高电压+高->高 | 电路:高+低->高
位运算涉及一些算法,&和^
&运算 --->判断x的二进制从右往左第m位是0还是1
若x & 2^(m-1) = 2^(m-1) ,则第m位是1
^ 运算两变量交换值,不依赖第三个变量
- 只有^知道两个一定能推出第三位
x ^ s = k,依据 k,s 可以推出x
0 - 1 = 1
0 - 0 = 0
1 - 1 = 0
<< (向左移) 和 >>(向右移)
左移<<
右侧补0
- 计算机算乘除的时候动位移就可,非常快;而平时算乘法都是那么多数相加
- 计算机算的是2的指数倍,因为存的都是二进制的数。
- 不是2的指数倍的话可以拆,任何十进制都可以变成若干个1的 二进制 110101 = 1+100+10000+100000
例:万亿级别的无非是几十次计算
32位第一位是1的话这个数就是负数了,因为超范围计算了
右移>>
补符号位:符号位为1就补1,0就补0
>>>运算符会用0填补高位;不存在