java中强制转换的问题~~

[复制链接]
查看11 | 回复4 | 2013-5-6 13:33:33 | 显示全部楼层 |阅读模式
示例代码:
int n = 123;
byte b = (byte)n;
int m = 1234;
byte b1 = (byte)m;则b的值还是123,而b1的值为-46。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,该值就是十进制的-46。...
回复

使用道具 举报

千问 | 2013-5-6 13:33:33 | 显示全部楼层
byte 范围是 -128 到127 203就内存溢出了 溢出后的结果是-53...
回复

使用道具 举报

千问 | 2013-5-6 13:33:33 | 显示全部楼层
byte 的范围是 -128-127
内存溢出后的结果是-53...
回复

使用道具 举报

千问 | 2013-5-6 13:33:33 | 显示全部楼层
byte没有那么大的长度,你已经溢出了这个,不能强转成byte这个...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行