将int 1000和-1000强制转换为byte类型数据,转换后的数据分别是?

发布网友 发布时间:2022-04-21 14:28

我来回答

5个回答

热心网友 时间:2023-11-12 04:52

byte类型的范围是-128至127,所以这样的转换肯定是有问题的。不知道你为什么要进行这样的转换。
高级数据类型int向低级数据类型byte的强制转换会导致数据丢失,所以出现-24和+24很正常。

int 32位
byte 8位
所以由int转向byte ,高位被截掉了24位。
int=21;在计算机中表示为00000000,00000000,00000000,00010101
byte=21;就是00010101
byte转换int直接赋值,int转byte强制类型转换,因为涉及精度。

热心网友 时间:2023-11-12 04:52

byte的大小为2^8=256
范围是-128至127 只能表示256个数
128时溢出为-128
然后逐渐增大
129时为-127
256时为零
383时为127最大
384时又溢出为-128
如此以256为循环
当256*4=1024时为零
1000=1024-24=0-24=-24
当256*-4=1-024时为零
-1000=-1024+24=0+24=24

热心网友 时间:2023-11-12 04:53

当超出byte范围时,计算机则采用补码方式读取数据,如1000,二进制为1111101000,用补码方式读取即1000011000,即-24,而-1000,则为0000011000,则为24,10分就能买这么多东西了,20分先给我就给你详细分析补码方式,OK,就这样了

热心网友 时间:2023-11-12 04:53

int 32位
byte 8位
转换后就会溢出。
所以由int转向byte ,多出来的位就会被截掉的。

热心网友 时间:2023-11-12 04:54

byte:一个字节(8位)

参考资料:http://zhidao.baidu.com/question/65177581.html?si=3

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com