原码反码补码 与 位移运算总结(Java)

计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理

以下代码基于java

java 中数字做位运算时,都会补全32位(Short也是),如果强转为Long类型则会用64位。

以下以-4,4为例 ,长度以32位为准。

关于:原码,反码,补码(有符号位)

java 输出-4或4的补码。

正数

4的原码=0(28个0)100

正数的 原码=反码=补码

负数 

注意:转换过程中:最高位符号位始终位置不变值也不变。

反码=(其他位取反,即1变0,0变1)

反码=(补码-1)

原码=反码除最高位符号位 全部取反。

补码=反码+1;

 

ym=-4原码= 1(中间28个0)100

fm=-4 反码=1(中间28个1)011

bm=-4补码=fm+1=1(中间28个1)100

移位运算

 

有符号右移 >>

负数 位运算过程:原码-》反码-》补码-》移位-》反

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章