前言
在Java中,byte的表示是以补码形式存在的,取值范围为-128~127,它没有unsigned类型
byte大小为8bit,int大小为32bit
当byte要转化成int时,会自动填充符号位至32bit
转化的问题
JVM默认的byte转int是填充符号位,即保证数值不变,例如
复制代码
1
2
3
4
5public static void main(String args[]) { byte b = -12; int i = b; System.out.println(i); //输出结果为-12 }
但有时候我们要的是byte里边的信息不变,即前边填充0,例如
复制代码
1
2
3
4
5
6public static void main(String args[]) { byte b = -12; int i = b & 0xff; System.out.println(i); //输出244,即由符号位变为无符号位 }
补充
Byte.toUnsignedInt(byte b)起到和 & 0xff 同样的效果
转载于:https://my.oschina.net/winstoncopy/blog/860190
最后
以上就是干净花卷最近收集整理的关于java的byte转int的全部内容,更多相关java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复