类型转换问题

来源:百度知道 编辑:UC知道 时间:2024/04/27 17:35:17
为什么第一句"byte b=5"不会报错??

5是int型的,b是byte型的,那么b=5不用这样写吗-
b=(byte)5;为什么?

int 占4个字节
byte占1个字节
我们知道每个字节8位。
转换为2进制的话,
int 最多可以表示正负一共2的32次方个数,
byte 则是2的8次方。
也就是说在-128~127范围内的数字 直接等于 byte 是没有错的
但是 你如果 -129 或者 +128 要是赋值给 byte 那就出错了
============================
之所以这么和你说Java语言默认给你转换了 所以你不用担心了
在范围的就不会出错