jps动态网站开发,旺道seo推广系统怎么收费,网站怎么做搜索,网络推广软件排行位运算 对于有符号的数而言 二进制数的特点:1.二进制的最高位是符号位:0表示正数,1表示负数2.正数的原码、补码、反码都一样【三码合一】3.负数的原码反码符号位不变,其他位取反、负数的反码原码符号位不变,其他位取反…
位运算
```
对于有符号的数而言 二进制数的特点:1.二进制的最高位是符号位:0表示正数,1表示负数2.正数的原码、补码、反码都一样【三码合一】3.负数的原码=反码符号位不变,其他位取反、负数的反码=原码符号位不变,其他位取反【0->1 1->0】4.负数的补码=反码+1 、负数的反码=补码-15. 0的反码和补码都是0***6.在计算机运算的时候,都是采用补码的方式来运算【使用补码进行运算可以将正数和负数统一起来】【位运算是通过补码进行运算的,计算机的底层就是这么运算的】***7.呈现在用户面前的是原码,最后的位运算结果也是原码***8.最高位符号位不计入最终的结果中,只是单纯的表示为符号
对于无符号的数而言:没有负数,都是正数,三码合一
```
## 位运算符& 按位与 “与运算” 两个对应的数都为1 最后结果位1 否则为0 ==>类似 &&| 按位或 “或运算” 两个对应的数只要一个为1 最后结果为1 否则为0 ==>类似 ||^ 按位异或 “异或运算” 两个对应的数不相同 最后结果为1 否则为0 ~ 按位取反 “取反运算” 1变0 0变1<< 按位左移运算 将一个运算对象的各二进制位全部左移若干位【左边丢弃 右边补0】>> 按位右移运算 将一个运算对象的各二进制位全部右移若干位【正数左补0,负数左补1,右边舍弃】## 练习3&23的原码:00000000 00000000 00000000 000000113的补码:00000000 00000000 00000000 000000112的原码:00000000 00000000 00000000 000000102的补码:00000000 00000000 00000000 000000103的补码:00000000 00000000 00000000 000000112的补码:00000000 00000000 00000000 000000103&2的补码:00000000 00000000 00000000 00000010 【正数】3&2的原码:00000000 00000000 00000000 00000010 ==》2-3|2-3的原码:10000000 00000000 00000000 00000011-3的反码:11111111 11111111 11111111 11111100-3的补码:11111111 11111111 11111111 111111012的原码:00000000 00000000 00000000 000000102的补码:00000000 00000000 00000000 00000010-3的补码:11111111 11111111 11111111 111111012的补码:00000000 00000000 00000000 00000010-3|2的补码:11111111 11111111 11111111 11111111 【负数】-3|2的反码:11111111 11111111 11111111 11111110-3|2的原码:10000000 00000000 00000000 00000001 ==》-1~2==>对2进行取反操作在位运算中:是对补码进行操作的 又因为正数的三码合一,又因为2是int 占4个字节=32位22的原码:00000000 00000000 00000000 000000102的补码:00000000 00000000 00000000 000000102的取反:11111111 11111111 11111111 11111101 【补码】【最高位为1 取反的结果为负数】2取反的反码:11111111 11111111 11111111 111111002取反的原码:10000000 00000000 00000000 00000011 ==>原码是显示在电脑上的数:也就是最终的结果:-32<<12的原码:00000000 00000000 00000000 000000102的补码:00000000 00000000 00000000 000000102<<1的补码:00000000 00000000 00000000 00000100 【正数】2<<1的原码:0000000 00000000 00000000 000000100 =>4