将int 1000和-1000强制转换为byte类型数据,转换后的数据分别是?
发布网友
发布时间:2024-10-13 04:17
我来回答
共5个回答
热心网友
时间:2024-10-13 05:38
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强制类型转换,因为涉及精度。
热心网友
时间:2024-10-13 05:42
byte:一个字节(8位)
热心网友
时间:2024-10-13 05:41
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
热心网友
时间:2024-10-13 05:36
当超出byte范围时,计算机则采用补码方式读取数据,如1000,二进制为1111101000,用补码方式读取即1000011000,即-24,而-1000,则为0000011000,则为24,10分就能买这么多东西了,20分先给我就给你详细分析补码方式,OK,就这样了
热心网友
时间:2024-10-13 05:43
int 32位
byte 8位
转换后就会溢出。
所以由int转向byte ,多出来的位就会被截掉的。