1. 程式人生 > >位元組--淺談位元組(一)

位元組--淺談位元組(一)

接上面的那個【位元組–程式設計題】


byte:位元組,由8位的二進位制組成;
在計算機中,8位帶符號二進位制數的取值範圍是【-128,127】,Java中,byte的取值範圍也是【-128,127】。

這塊涉及到計算機組成原理的原反補碼,計算機中數字的計算和儲存都是用的補碼。
原碼:最高位是符號位,‘0’表示正,‘1’表示負,其餘位以二進位制的形式表示數值的大小;
反碼:正數的反碼與其原碼相同;負數的反碼,除符號位不變,其他位取反;
補碼:正數的補碼與其原碼相同;負數的補碼實在其反碼的末位加1。

所以,位元組編碼可以是負數。

	public static void main(String[] args) {
		 int a = 444;
		 byte b = (byte) a;
		 System.out.println(b);
	}

解析:
int型是32位的二進位制,即4個位元組;
(444)原碼 = (444)補碼 = 0000…000110110010
int型資料(32位) 轉換成 byte型資料(8位) 需要截斷處理
得到:1011 0010
補碼 1011 0010 = 原碼 1100 1110 = -68