int轉bytejava
發布時間: 2023-01-18 07:57:53
1. java中int轉換byte型
下面這個解答不是我寫的,我也在看,還不是很明白,但這個解答是正確的:
這個是編碼方式決定的,Java中正數用源碼表示,負數用補碼表示,第一位是符號位。
所以對於128和-129,他們的編碼分別是:
0000 0000 0000 0000 0000 0000 1000 0000
1111 1111 1111 1111 1111 1111 0111 1111。
對於a來說,1000 0000是負數(第一位為1),它的絕對值是1000 0000即128,
而對於b來說,0111 1111是正數,值為127。
————————————————————————————————————
0 00000000
1 00000001
... ........
127 01111111
----------------
共 128 個
-1 11111111
-2 11111110
... ........
-128 10000000
----------------
共 128 個
我們都知道byte佔8位。而2的8次方等於256,也就是byte最多可以表示256個不同的數,
0~127:128個
-0~127:128個
但是這里0與-0表示一樣的數了,所以就用-0的二進制補碼表示到-128裡面去了
2. JAVA中int強制轉換byte
因為在java中,int類型的佔4個位元組,而byte佔1個位元組,所以int類型轉化為byte類型時會出現位丟失情況,即將int的低8位作為byte類型的值。int型變數的值為257,對應的二進制是100000001,後8位是00000001,第一個0表示符號位,表示正數,所以變數x的值為1。
熱點內容