byte b;int i =265;b = (byte)i;System.out.println("byte to int is"+" "+b);为什么结果是10啊要详细过程

来源:百度知道 编辑:UC知道 时间:2024/07/04 08:53:37
结果的byte to int is 10的那个10是怎么来的谁能给个详细的过程

我来告诉你吧
在java中,byte占8个字节,int占32个字节
byte的范围是 -128到127
265显然超出了这个范围
在java的转换运算中,要先把10进制转化为2进制的
265:100001001
byte只有8位,所以只能套取后8位
套取后8位为00001001,转换为10进制就是9,而不是10
你的这个问题在《java就业培训教程》中出现过,是个很经典的问题
在书中i的初始赋值是266,所以是10
lz给的是265,所以结果应该是9

溢出了,byte类型的范围是0~255
你转化的整形是265耶
超出了10
你可以用一个小于255的正整数试试