JAVA学习细节问题——稻草人
问题一:注意变量的有效取值范围
/*小数常量的默认类型为double型*/
float f = 3.5; //错误
float f = 3.5f; //正确
java byte类型为什么是(127—— -128)?
计算机中数值使用补码来存储的。 java的byte是8bit(位),就是8个0/1 来表示。
正数,原码跟补码一样
正数 补码
+127, 0111 1111
+126, 0111 1110
...
+2, 0000 0010
+1, 0000 0001
0, 0000 0000 (无正负之分)
在计算机处理时,对于负数,先取绝对值,然后求反,加一
负数 原码 反码 补码
-1, 1000 0001, 1111 1110, 1111 1111
-2, 1000 0010, 1111 1101, 1111 1110
...
-124, 1111 1100, 1000 0011, 1111 1101
-125, 1111 1101, 1000 0010, 1000 0011
-126, 1111 1110, 1000 0001, 1000 0010
-127, 1111 1111, 1000 0000, 1000 0001
-128的补码是:1000 0000
-128 -> 128 -> 1000 0000 -> 0111 1111 -> 1000 0000
所以:是(-128——127)。