当前位置:网站首页 > Java基础 > 正文

毕向东java基础25笔记



①对于正数而言,原码、反码、补码是相同的

②对于负数,原码,反码(为首位表示正负的1不变,剩下的0和1互换),补码(为反码加1)

左移<<

左移的快速计算方式就是乘以2的n次方,比如说左移两位就是乘以2的2次方。

就拿2来举例:

0000 0010 左移两位变成0000 1000变成了2乘以2的2次方,结果为8

对于负数左移也是一样的快速计算方式,比如-2左移两位变成-2*(2^2)=-8

右移>>

与左移相反,右移的快速计算方式就是除以2的n次方,如果除不尽就向下取整。

比如-9右移两位 等于-9/(2^2)=-3【向下取整为-3】

-9的原码为:1000 0000 0000 0000 0000 0000 0000 1001

反码为:1111 1111 1111 1111 1111 1111 1111 0110

补码为:1111 1111 1111 1111 1111 1111 1111 0111

右移两位为:11(补1) 1111 1111 1111 1111 1111 1111 1111 01

根据补码算反码:

11(补1) 1111 1111 1111 1111 1111 1111 1111 00

根据反码算原码:为-3

1000 0000 0000 0000 0000 0000 0000 0011

无符号右移>>>

运算规则:往右移动后,左边空出来的位置直接补0,不管最高位是0还是空出来的都拿0补。

正数:和右移一样

9>>>2 为2

负数:右移出去几位,左边补几个0,结果变成正数。

-9>>>2 为

例子:8>>>32 相当于没有移动还是8

8>>>34相当于移动两位

按位与:&

1&1 为1

1&0 为0

0&1 为0

0&0 为0

5&3 为1 5(0101)&3(0011) 为0001

按位或: |

运算规则:对应为只要有1即为1,相当于符号前后只要有一个为true,结果就是true

1 | 1 为1

1 | 0 为1

0 | 1 为1

0 | 0 为0

5 | 3 为7

按位异或:^

运算规则:对应位一样的为0,不一样的为1

1^1 为0

1^0 为1

0^1 为1

0^0 为0

5^3 为6

按位取反~

运算规则:~0就是1 毕向东java基础25笔记 ~1就是0

~10 结果为-11 符号位位0,取反后就为1 ,所以符号就变成了负号

10的补码(由于10是正数,原码,补码,反码一样):0000 0000 0000 0000 0000 0000 0000 1010

按位取反:1111 1111 1111 1111 1111 1111 1111 0101 换成反码

1111 1111 1111 1111 1111 1111 1111 0100 换成原码

版权声明


相关文章:

  • java基础物流系统2025-04-29 17:02:03
  • java基础语法ppt下载2025-04-29 17:02:03
  • java基础类型 栈2025-04-29 17:02:03
  • java基础待遇如何2025-04-29 17:02:03
  • java基础死锁2025-04-29 17:02:03
  • java基础代码public2025-04-29 17:02:03
  • 零基础学习java多久2025-04-29 17:02:03
  • java基础入门 微盘2025-04-29 17:02:03
  • java 基础经典视频2025-04-29 17:02:03
  • java 基础教材2025-04-29 17:02:03