public class No2 {
public static void main(String[] args){
for(int i=1;true;){
i=i+123456789;
System.out.println(i);
}
}
}为什么加到最后会出现负值?
解决方案 »
- 请教编写几个java程序
- java连接svf生成pdf
- HttpComponents Client遇到HttpHostConnectException错误怎么办?
- java设计题,高手帮忙看一下,谢了
- 提问:逐个显示字体
- 总结了一些日期时间常用的方法,做为自己的工具类很适用.
- 请问:如何实现窗体的放大缩小,使用画布的重画功能吗?
- 如何在Java的Label中显示多行文字?
- 判断闰年?
- 为什么我用JBUILDER9做的一个applet,然后嵌入到html文件中,用JBUILDER自代的appletviewer可以打开,而用IE却打不开。
- SE做学生成绩管理系统的问题
- 还是关于在txt文本中的字符串的替换问题
那我int a=999999999999999999;他怎么不变成别的 ?我这也溢出了,为什么不变负数或者范围之内的数?
1、是发生溢出了
2、a=99999999999999999肯定是编译不过去的
3、建议你看看java的类型定义那章,详细阅读下就明白了
MAX_VALUE:2147483647
我生气了!!!
int a=2147483647+2147483647
这个也超出范围了啊,但为什么编译器不报,还能运行起来?
哎呀,归根结底是数据超过了int的数据范围,就成负的了。
(其实是前n个字节,如果不知道我说什么,就姑且认为是最后的n个字节)对于int类型 int a = b; 相当于 int a = b & 0xFFFFFFFF;
对应的,要是 byte a = b就相当于 bye a = b & 0xff;