先看一段推理<*一切都是在8個比特位的前提下,討論二進位的符號位,溢出等等,才有意義*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +127:0111 1111 ...
先看一段推理<*一切都是在8個比特位的前提下,討論二進位的符號位,溢出等等,才有意義*>
+124:0111 1100 -124:1000 0100
+125:0111 1101 -125:1000 0011
+126:0111 1110 -126:1000 0010
+127:0111 1111 -127:1000 0001
+128:0 1000 0000 -128:1000 0000
從上述過程對比可以看出:+128是在127的基礎上加1得到,但是會造成溢出(JAVA中byte的大小為一個位元組),所以byte無法表示128,
而在我們的潛意識的想法里:0在電腦中的表示方法有兩種:+0(0000 0000)和-0(1000 0000),而由於1000 0000已經被-128占據,所以0在二進位數中是正數表示(即符號位0),
在Java中一個byte的取值總個數:2^8 = 256;256/2 = 128;===>取值範圍:-128~-1,0~127,原點作為分割點,兩個各128數,
註意幾個數的特殊性:
0:0000 0000
-128:1000 0000
-1:1111 1111
+127:0111 1111