int 转换成byte 数字
byte是1个字节 所以(字节型,占1 字节,表示8 位正整数,范围0 ~ 255) int是4个字节 而把int转换成byte会截取最后一个字节 比如你说的135 转为2进制应该有4个字节 然后仅仅要最后一个字节 最后一个字节的第一位被作为符号位135转换2进制后为10000111 然后按照 补码 计算规则看一下 把除了符号位之外 取反加1 变成11111001 这结果是-121
用256 减去 你所转换的数的绝对值 ,然后,加个符号(和做转换数相反的),就是结果????????
我算出来应该是-28 156=10011100B 转换为byte为11100B=-28
问题补充:
156=10011100B 最高位为符号位 而11100B=28 故为-28
如 byte c1 = 46; byte c2 = 95; byte c3 = (byte)(c1 + c2); System.out.println("c3=" + c3); 输出结果为什么是 负100 老师说是int4个字节byte是一个字节去掉三个字节,余下哪个字节是多少就是多少。可是哪三个字节是怎么去的呢
其实不能说是去掉3个字节,只能说在读取数据的时候只读取了最低的一个字节里的数据而已,那另外的3个字节还在 ,只是没有读取里面的内容而已
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。