当前页面: 开发资料首页 → J2SE 专题 → 为什么等于11??感谢
为什么等于11??感谢
摘要: 为什么等于11??感谢
public class abc {
/**
* @param args
*/
public static void main(String[] args) {
byte b;
int i = 267;
b = (byte) i;
System.out.println(b);
}
}
267的二进制:1 0000 1011
byte的取值范围:-256~255。
但是267的值不在byte的取值范围,因此只取二进制的最后8位数:0000 1011 = 11。
在机器里都是2进制的数,你把它他们都转化为2进制后,
再看看就是正确的答案了。
溢出了
usxue(尘飞扬)
说的对,就是这样
对256取模
这个倒没有出现过哈
溢出,常见!!!
byte最大255
你的267肯定溢出了
jf
楼上说得很清楚了...就是注意一下数据的类型和范围..