定義
16進位,英文名稱Hexadecimal(簡寫Hex), 在數學中是一種逢16進1的進位制。一般用數字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,這些稱作十六進位數字,比如十進位13用16進位表示是D, 28用16進位是1C。
0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16進位在計算機領域應用普遍,常見的有html\css的顏色表、mac地址、字符編碼等都用16進位來表示。 這是因為將4個位元(Bit)化成單獨的16進位數字不太困難。1位元組可以表示成2個連續的16進位數字。可是,這種混合表示法容易令人混淆,因此需要一些字首、字尾或下標來顯示,在C語言、C++、Shell、Python、Java語言及其他相近的語言使用字首「0x」來標示16進位,例如「0x5A3」代表1443。
16進位轉換10進位
為何「0x5A3」代表1443呢? 怎麼算出來的?
16進位數轉10進位數的原理:1000=1X16^3(16的3次方)+0X16^2(16的2次方)+0X16(16的1次方)+0X1(16的0次方)=4096。
A = 10, B = 11,,C =12,D=13,E=14,F= 15。
FFF=15*(16^2) + 15*(16^1) + 15*(16^0) = 4095。
10進位轉16進位算法
除16取餘數得最低1位,然後把商繼續除得第2位,直到商等於0舉例:
65036 除 16,餘數 12(C),商40644064 除 16,餘數 0(0),商254254 除 16,餘數 14(E),商1515除16,餘數 15(F),商0,結束得16進位為 FE0C
最後記住 ,16進位只是一種展示手法,相比2進位展示的更短更易換算,就像我們看10進位一樣, 計算機底層運行的肯定還是二進位