int转byte的两种情况

lazy cat 2016-03-27 09:12:40
当值不超过byte的范围时:
byte b = 123;正确
为什么:
int i=123;
byte b = i;
这样写,就不能呢
是否直接写123 与int i=123有不同呢?
...全文
858 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GuoYu@ 2018-03-08
  • 打赏
  • 举报
回复
想硬来?int转byte不加强制转换处理?
A1559161567 2016-03-30
  • 打赏
  • 举报
回复
有的时候,强转飞灰烟灭
风吹过夏天 2016-03-30
  • 打赏
  • 举报
回复
高精度转低精度要强转, 低精度转高精度,隐式转换即不用特殊处理。
san0760 2016-03-29
  • 打赏
  • 举报
回复
int类型和byte类型不可能相互赋值的呀,类型都不同。如果硬要这样写,就加个强制转换。byte b=(byte)i
xiaoqingyu123 2016-03-27
  • 打赏
  • 举报
回复
不好意思,byte b=i;我说错了,byte b=i,的在java中的意思是将i的值赋予给byte b,b在计算机中容量只有一个八字节,儿int i 是有四个八字节,容量不够大,塞不下啊,他就会报错。将i前面三个无效字节强制转换掉就可以了。这样写发才不会报错,前面的我写错了。 b=(int)i;
xiaoqingyu123 2016-03-27
  • 打赏
  • 举报
回复
byte定义的字节为一个八位,在计算机中byte b=123实际的值为1111-1011 int定义为八个字节,也就是八个byte的范围,在计算机int i=123中的值为 0000-0000 0000-0000 0000-0000 1111-1011 你说这两个能相等吗?只有强制装换才相等。比如 byte b=(byte)i;

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧