① 各種進制轉換方法
一)、數制
計算機中採用的是二進制,因為二進制具有運算簡單,易實現且可靠,為邏輯設計提供了有利的途徑、節省設備等優點,為了便於描述,又常用八、十六進製作為二進制的縮寫。
一般計數都採用進位計數,其特點是:
(1)逢N進一,N是每種進位計數製表示一位數所需要的符號數目為基數。
(2)採用位置表示法,處在不同位置的數字所代表的值不同,而在固定位置上單位數字表示的值是確定的,這個固定位上的值稱為權。
在計算機中:D7 D6 D5 D4 D3 D2 D1 D0 只有兩種0和1
8 4 2 1
二)、數制轉換
不同進位計數制之間的轉換原則:不同進位計數制之間的轉換是根據兩個有理數如相等,則兩數的整數和分數部分一定分別相等的原則進行的。也就是說,若轉換前兩數相等,轉換後仍必須相等。
有四進制
十進制:有10個基數:0 ~~ 9 ,逢十進一
二進制:有2 個基數:0 ~~ 1 ,逢二進一
八進制:有8個基數:0 ~~ 7 ,逢八進一
十六進制:有16個基數:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六進一
1、數的進位記數法
N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0
2、十進制數與P進制數之間的轉換
①十進制轉換成二進制:十進制整數轉換成二進制整數通常採用除2取余法,小數部分乘2取整法。例如,將(30)10轉換成二進制數。
將(30)10轉換成二進制數
2| 30 ….0 ----最右位
2 15 ….1
2 7 ….1
2 3 ….1
1 ….1 ----最左位
∴ (30)10=(11110)2
將(30)10轉換成八、十六進制數
8| 30 ……6 ------最右位
3 ------最左位
∴ (30)10 =(36)8
16| 30 …14(E)----最右位
1 ----最左位
∴ (30)10 =(1E)16
3、將P進制數轉換為十進制數
把一個二進制轉換成十進制採用方法:把這個二進制的最後一位乘上20,倒數第二位乘上21,……,一直到最高位乘上2n,然後將各項乘積相加的結果就它的十進製表達式。
把二進制11110轉換為十進制
(11110)2=1*24+1*23+1*22+1*21+0*20=
=16+8+4+2+0
=(30)10
把一個八進制轉換成十進制採用方法:把這個八進制的最後一位乘上80,倒數第二位乘上81,……,一直到最高位乘上8n,然後將各項乘積相加的結果就它的十進製表達式。
把八進制36轉換為十進制
(36)8=3*81+6*80=24+6=(30)10
把一個十六進制轉換成十進制採用方法:把這個十六進制的最後一位乘上160,倒數第二位乘上161,……,一直到最高位乘上16n,然後將各項乘積相加的結果就它的十進製表達式。
把十六制1E轉換為十進制
(1E)16=1*161+14*160=16+14=(30)10
3、二進制轉換成八進制數
(1)二進制數轉換成八進制數:對於整數,從低位到高位將二進制數的每三位分為一組,若不夠三位時,在高位左面添0,補足三位,然後將每三位二進制數用一位八進制數替換,小數部分從小數點開始,自左向右每三位一組進行轉換即可完成。例如:
將二進制數1101001轉換成八進制數,則
(001 101 001)2
| | |
( 1 5 1)8
( 1101001)2=(151)8
(2)八進制數轉換成二進制數:只要將每位八進制數用三位二進制數替換,即可完成轉換,例如,把八進制數(643.503)8,轉換成二進制數,則
(6 4 3 . 5 0 3)8
| | | | | |
(110 100 011 . 101 000 011)2
(643.503)8=(110100011.101000011)2
4、二進制與十六進制之間的轉換
(1)二進制數轉換成十六進制數:由於2的4次方=16,所以依照二進制與八進制的轉換方法,將二進制數的每四位用一個十六進制數碼來表示,整數部分以小數點為界點從右往左每四位一組轉換,小數部分從小數點開始自左向右每四位一組進行轉換。
(2)十六進制轉換成二進制數
如將十六進制數轉換成二進制數,只要將每一位十六進制數用四位相應的二進制數表示,即可完成轉換。
例如:將(163.5B)16轉換成二進制數,則
( 1 6 3 . 5 B )16
| | | | |
(0001 0110 0011. 0101 1011 )2
(163.5B)16=(101100011.01011011)2
② 如何快速轉換進制
簡單的方法是用windows
自帶的計算器,在查看中將標准型改為科學型就可以實現2進制和10進制的轉換。
③ 十進制轉二進制快速演算法
首先講一下「權重」的概念,數字中某位的權重:2的(該位所在的位數(從右至左)-1)次方,比如:100的權重為:2^(1-1)=1 1的權重為:2^(2-1)=2,二進制轉十進制:數字中所有位*本位的權重然後求和。
比如將10101轉化為十進制:10101=1*2^4+0*2^3+1*2^2+0*2^1+1*2^0=21
十進制如何轉二進制:將該數字不斷除以2直到商為零,然後將余數由下至上依次寫出,即可得到該數字的二進製表示,以將數字21轉化為二進制為例。
拓展資料:
十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。
而由二進制數轉換成十進制數是把二進制數首先寫成加權系數展開式,然後按十進制加法規則求和,這種做法稱為「按權相加」法。
④ 進制轉換簡便方法
採用轉換高位到低位方法,即十進制先轉換為十六進制,再轉換為二進制。程序使用范圍是小於十進制數30000的轉換。
因為16的立方是4096,16的平方是256,當一個數大於或等於4096而小於30000則轉換為四位十六進制數;當一個數大於等於256而小於4096則轉換為三位十六進制數;當一個數大於等於16而小於256則轉換為二位十六進制數;一個數小於16則轉換為一位十六進制數。
每一位十六進制數都對應四位二進制數。於是可編寫一函數實現一位十六進制數對二進制數的轉換。
由於二進制數都是0或1,程序中都設置為字元型。
第一步設變數:全局字元數組b[4],用來實現每一位十六進制數對二進制數的轉換。設字元數組a[21],裝入全部轉換的二進制數,並全部初始化為』\0』。
第二步編程,設置死循環結構從而實現任意次數的轉換,直到從鍵盤上輸入8,跳出循環並退出程序。
第三步編譯並改錯。
第四步運行程序。
⑤ 怎樣進行進制間的轉換
進制間的轉換
一、進制與十進制之間的轉換
1.十進制轉二進制
方法為:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。
(具體用法如下圖)