Java 位运算符

稍微看了下,HashMap的源码,发现基础的运算符 都不记得了
再回顾一下 稍做记录

原码,补码,反码

  • 正数:原码=补码=反码
  • 负数:反码=符号位不变,其余取反
    补码=反码+1

这篇博文讲的不要太好

  • https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

  • 解决原码做减法的问题, 出现了反码

  • 为解决0的符号以及[0000 0000]原和[1000 0000]原两个编码表示0.的问题出现补码,而且可以用[1000 0000]表示-128

  • 8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127]

&

全为真则真,如下4&8结果为0

|

一个为真即为真,如下4|8结果为12

^

不同则为真,如下4^8结果为12

<<

4<<1=8

>>

4>>1=2

~

取反,~4的值为-5

>>>

posted @ 2020-05-13 22:18  VVII  阅读(210)  评论(0)    收藏  举报