标签:符号位 运算 image 反码 ref 变化 32位 byte mamicode
原码反码补码这三个概念
对于正数(00000001)原码来说,首位表示符号位,反码 补码都是本身
对于负数(100000001)原码来说,反码是对原码除了符号位之外作取反运算即(111111110),补码是对反码作+1运算即(111111111)
byte占8位,int占32位
也就是说在byte向int扩展的时候,自动转型是按符号位扩展的,这样子能保证十进制的数值不会变化,
而&0xff是补0扩展的,这样子能保证二进制存储的一致性,但是十进制数值已经发生变化了。
也就是说按符号位扩展能保证十进制数值不变,补0扩展能保证二进制存储不会变。
而正数可以说是既按符号位扩展,又是补0扩展,所以在二进制存储和十进制数值上都能保证一致。
参考:
https://www.cnblogs.com/xushuai0620/p/8893593.html
标签:符号位 运算 image 反码 ref 变化 32位 byte mamicode
原文地址:https://www.cnblogs.com/chenxuanyu/p/14949182.html