黑马程序员技术交流社区
标题:
强制转换的问题
[打印本页]
作者:
于XINCHENG
时间:
2013-8-9 16:50
标题:
强制转换的问题
请教大家一个关于强制转换的问题,如下图所示:
强制转换的问题.png
(27.16 KB, 下载次数: 25)
下载附件
2013-8-9 16:50 上传
为什么强制转换后输出的是-128?
作者:
What/
时间:
2013-8-9 17:15
这是很基础的问题,建议你多看API或者资料.自己动手丰衣食足,
作者:
崔一恒
时间:
2013-8-9 17:17
byt02的计算方法如下:b的值转换为二进制是10000000,取该数字低8位的值作为byt02的值,则byt02的二进制值是10000000,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10000000,该值就是十进制的-128。
作者:
杨增坤
时间:
2013-8-9 18:01
byte类型的范围是 -127~128 然而超出了这个范围就不是原来的范围的数据 了。
作者:
jagon
时间:
2014-3-12 10:36
首先byte的范围是:-128——127,
再看你的代码:
int b=128;
byte byt02=(byte)b;
b由int型向byte型转换,发生越界溢出,byte最大值(127)加1,会变成最小值-128,最小值(-128)减1,就会变成最大值;
(希望对你有帮助!)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2