資料表示法:位元、位元組與數值
半位元組(nibble)
/ NIB-uhl /
半位元組是半個位元組——四個位元。如果一個位元組(byte)是「一口」資料,那麼 nibble(「一小口」)就是把它咬掉一半的俏皮叫法。你不會像用位元組那樣以半位元組來儲存資料,但這個詞確實好用,原因只有一個:一個半位元組恰好對應一個十六進位數字。
四個位元能組成 2^4 = 16 種模式,編號 0 到 15——這正好是一個十六進位數字的範圍,0 到 f。所以任何位元組都能乾淨地拆成兩個半位元組,各寫成一個十六進位字元。位元組 1101 0011 拆成高半位元組 1101(十六進位 d)和低半位元組 0011(十六進位 3),組成整齊的十六進位位元組 0xd3。這就是為什麼程式設計師那麼常用十六進位:每個十六進位數字不過就是一個盛裝打扮的半位元組。
你主要會在兩個地方遇到「半位元組」這個詞:閱讀記憶體的十六進位傾印時(每一對十六進位字元就是一個位元組、兩個半位元組),以及把兩個小值打包進一個位元組的格式裡,例如某些日期編碼或舊式圖形。它是個方便的稱呼,而不是硬體特別對待的單位。
0xD3 的二進位是 1101 0011:高半位元組 1101 = D,低半位元組 0011 = 3。每個半位元組對應一個十六進位數字。
兩個半位元組放進一個位元組,讀出來就是兩個十六進位數字。
半位元組只是個命名上的方便稱呼,而非 CPU 直接操作的單位;指令處理的是位元組和字組,從不單獨處理一個四位元的半位元組。
又称
另见