a>b,所以a 等于6,然后b 应该不执行啊……那么a b就是6 2=8了然后逗号表达式的值是最后的话,那就是8了么……试一试么……全部
初学java时遇到的问题
为什么输出Y时候的值和预想的不一样?
很简单的的二进数(补码)是。转为int读值的时候取低32位讀前面的二进制刚刚好32位最高位是1 由于java中int是有符号的所以整个数是负数,根据补码求源码需要再次进行补码运算(对一个整数的补码再求补码等于该整数自身)这边是负数 先取反再加1得到源码也就是,最终就是-了
int 存储长度是32bit,所以int的范围是“-2^32”到“2^32-1”当你也就是“-~”,当超出“”的时候就会重新从“-”开始计数,所以你就会得到这个结果
这段代码可以帮你方便查看及转换二进制
把3、4楼结合一下就昰你要的答案了
这是一个区间[-----],达到最大值的时候就会返回到最小值从-
重新开始计数,超出了最大值
3楼的是计算方法,先取补码然后加1,
第一位是符号位1结果是负值