今天翻了一本計算機基礎的書籍,其中十進位制、二進位制、八進位制、十六進製制之間的轉換挺有意思的,也容易犯糊塗,特溫故而知新。
十進位制數制系統
十進位制數制系統包括 10 個數字:0、1、2、3、4、5、6、7、8、9
基為:10
逢十進一,如3+7=10,20+80=100
二進位制數制系統
計算機中使用二進位制表示資料
二進位制包括兩個符號:
0和1二進位制逢二進一:(
1+1)2=(10)2
二進位制的基為
2示例:1000101100101101
八進位制數制系統
用於縮短二進位制的數字長度
八進位制基是
8,使用的符號為:0、1、2、3、4、5、6、7
逢八進一,即
(7+1)8=(10)8
十六進製制數制系統
十六進製制數制系統的基是
16十進位制:
0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15
十六進製制:
0、1、2、3、4、5、6、7、8、9、a、 b、 c、d、 e、 f
逢十六進一,如
(8+8)16=(10)16
示例:12b、00ffff
計算機中以數量表示色彩
各數制的權
各種數制中不同位的權為「基的
n-1次方(n為所在的位數)」。如:
十進位制中,各位的權為10n-1
二進位制中,各位的權為2n-1
八進位制中,各位的權為8n-1
十六進製制中,各位的權為16n-1
數制轉換
其他進製向十進位制轉換
十進位制向其他進製轉換
二進位制、八進位制、十六進製制之間進行轉化
非十進位制轉成十進位制
方法:將相應進製的數按權展成多項式,按十進位制求和。
(f8c.b)16
= f×16
2+8×16
1+c×16
0+b×16
-1 = 3840+128+12+0.6875
=3980.6875
(10011.01)2
=1×2
4+0×2
3+0×2
2+1×2
1+1×2
0+0×2
-1+1×2
-2 =16+2+1+0.25
=19.25
整數部分的轉換
除基取餘法:用目標數制的基數去除十進位制數,第一次相除所得餘數為目的數的最低位 k0,將所得商再除以基數,反覆執行上述過程,直到商為「0」,所得餘數為目的數的最高位。
例:(81)10=(?)2
得:(81)10 =(1010001)2
小數部分的轉換
乘基取整法:小數乘以目標數制的基數,第一次相乘結果的整數部分為目的數的最高位,將其小數部分再乘基數依次記下整數部分,反覆進行下去,直到小數部分為「0」,或滿足要求的精度為止。(如2
-5,只要求到小數點後第五位)
例: (0.65)10 =( ? )2 要求精度為小數五位。
由此得:(0.65)10=(0.10100)2
綜合得:(81.65)10=(1010001.10100)2
二進位制與八進位制間的轉換
從小數點開始,將二進位制數的整數和小數部分每三位分為一組,不足三位的分別在整數的最高位前和小數的最低位後加「0」補足,然後每組用等值的八進位製碼替代,即得目的數。
例:(11010111.0100111)2 = (327.234)8
二進位制與十六進製制間的轉換
從小數點開始,將二進位制數的整數和小數部分每四位分為一組,不足四位的分別在整數的最高位前和小數的最低位後加「0」補足,然後每組用等值的十六進製製碼替代,即得目的數。
例: (111011.10101)2=(3b.a8)16
綜合示例:
將 -617 用八進位制和十六進製制(補碼)表示:
答案: (-617)10=(176627)8=(fd97)16
原理:任何數在記憶體中都是以二進位制補碼的形式存放的.
正數的補碼就是其本身的二進位制.
負數的補碼是其絕對值的二進位制的反碼加+1.
1:-617的絕對值:617
其二進位制0000001001101001(整型16位)
2: 反碼 :1111 1101 1001 0110.
3:加1後 :1111 1101 1001 0111.
轉8進製,3位一體:
即:001 111 110 110 010 111
1 7 6 6 2 7
轉16進製制,4位一體:
即:1111 1101 1001 0111
f d 9 7
進製之間的轉換
作為程式設計人員,我們常用的進製型別為 2 進製 8 進製 10 進製以及 16 進製了,他們的表示方法為 2進製為 0b001101 也就是二進位制數前加上 0b 8進製為 067 進製數前加上 0 10進製就不需多說了,什麼也不加就行,而16進製制前需要加上 0x 如 0x78af 他們的區別在...
進製之間的轉換
十進位制數制系統 十進位制數制系統包括 10 個數字 0 1 2 3 4 5 6 7 8 9 基為 10 逢十進一,如3 7 10,20 80 100 二進位制數制系統 計算機中使用二進位制表示資料 二進位制包括兩個符號 0和1 二進位制逢二進一 1 1 2 10 2 二進位制的基為2 示例 100...
進製之間的轉換
二進位制數為 0或1表示,十進位制數為0 9表示,十六進製制為0 f表示 二進位制數後用o表示,十進位制數後用d表示,十六進製制數後用h表示。將十進位制數99d轉換為二進位制數可以用除2取餘法 99除2得49餘1 49除2得24餘1 24除2得12餘0 12除2得6餘0 6除2得3餘0 3除2得1餘...