码迷,mamicode.com
首页 > 其他好文 > 详细

byte为什么要&0xff

时间:2021-06-29 16:03:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:符号位   运算   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

byte为什么要&0xff

标签:符号位   运算   image   反码   ref   变化   32位   byte   mamicode   

原文地址:https://www.cnblogs.com/chenxuanyu/p/14949182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!