1. 關於計算機的進制轉換方法
進數轉換:
1、二進制數、十六進制數轉換為十進制數(按權求和)
二進制數、十六進制數轉換為十進制數的規律是相同的。把二進制數(或十六進制數)按位權形式展開多項式和的形式,求其最後的和,就是其對應的十進制數——簡稱「按權求和」.
例如:把(1001.01)2 二進制計算。
解:(1001.01)2
=8*1+4*0+2*0+1*1+0*(1/2)+1*(1/4)
=8+0+0+1+0+0.25
=9.25
2、十進制數轉換為二進制數,十六進物答孫制數(除2/16取余法)
整數轉換.一個十進罩鏈制整數轉換為二進制整數通常採用除二取余法,即用2連續除十進制數,直到商為0,逆序排列余數即可得到——簡稱除二取余法.
例:將25轉換為二進制數
解:25÷2=12 余數1
12÷2=6 余數0
6÷2=3 余數0
3÷2=1餘數1
1÷2=0 余數1
所以25=(11001)2
同理,把十進制數轉換為十六進制數時,將基數2轉換成16就可以了.
例:將25轉換為十六進制數
解:25÷16=1 余數9
1÷16=0 余數1
所以25=(19)16
3、二進制數與十六進制數之間的轉換
由於4位二進制數恰好有16個組合狀態,即1位十六進制數與4位二進制數是一一對應的.所以,十六進制數與二進制數的轉換是十分簡單的.
十六進制數轉換成二進制數,只要將每一位十六進制數用對應的4位二進制數替代即可——簡稱位分四位。
例:將(4AF8B)16轉換為二進制數.
解: 4 A F 8 B
0100 1010 1111 1000 1011
所以(4AF8B)16=(1001010111110001011)2
所以(111010110)2=(1D6)16
轉換時注意最後一組不足4位時必須加0補齊4位
(1)電腦中進制轉換方法擴展閱讀:
數制轉換的一般化
R進制轉換成十進制:任意R進制數據按權展開、相加即可得十進制數據。
例如:N = 1101.0101B = 1*2^3+1*2^2+0*2^1+1*2^0+0*2^-1+1*2^-2+0*2^-3+1*2^-4 = 8+4+0+1+0+0.25+0+0.0625 = 13.3125
N = 5A.8H = 5*16^1+A*16^0+8*16^-1 = 80+10+0.5 = 90.5
2)十進制轉換R 進制
十進制數轉換成R 進制數,須將整數部分和小數部分分別轉換。
參考舉逗資料:網路-進制
2. 在電腦的計算機中,如何把十進制轉換成二進制
以下代碼用於實現十進制轉二進制、八進制、十六進制:
# -*- coding: UTF-8 -*-# Filename :test.py# author by : dfghj345# 獲取用戶輸入十進制數dec = int(input("輸入數字: "))print("十進制數為",dec,":")print("轉換為二進制為:", bin(dec))print("轉換為八進制為:", oct(dec))print("轉換為十六進制為:", hex(dec))
1、算出 2 的 n 次冪不大於要表示的值;
2、用要表示的值減去 2的 n 次方,得到剩下的值後,重復步驟 1,直到最後剩下 0 為止。
舉個例子,十進制的 107 如何轉成二進制,先找出 2 的 n 次冪不大於 107 ,算得 n = 6,用 107 減去 2的6次方 得到 43。
重復下來後:107=1x2^6+1x2^5+0x2^4+1x2^3+0x2^2+1x2^1+1x2^0
如果該位用到,用 1 表示,否則用 0 表示。所以 107 用二進製表示為:01101011。
(2)電腦中進制轉換方法擴展閱讀
1、十進制整數轉換為二進制整數原理
眾所周知,二進制的基數為2,我們十進制化二進制時所除的2就是它的基數。談到它的原理,就不得不說說關於位權的概念。某進制計數制中各位數字元號所表示的數值表示該數字元號值乘一個與數字元號有關的常數,該常數稱為 「位權 」 。
位權的大小是以基數為底,數字元號所處的位置的序號為指數的整數次冪。十進制數的百位、十位、個位、十分位的權分別是10的2次方、10的1次方、10的0次方,10的-1次方。二進制數就是2的n次冪。
按權展開求和正是非十進制化十進制的方法。
下面我們開講原理,舉個十進制整數轉換為二進制整數的例子,假設十進制整數A化得的二進制數為edcba 的形式,那麼用上面的方法按權展開, 得
A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (後面的和正是化十進制的過程)
假設該數未轉化為二進制,除以基數2得
A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2
注意:a除不開二,餘下了!其他的絕對能除開,因為他們都包含2,而a乘的是1,他本是絕對不包含因數2,只能餘下。
商得:(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基數2餘下了b,以此類推。
當這個數不能再被2除時,先余掉的a位數在原數低,而後來的余數數位高,所以要把所有的余數反過來寫。正好是edcba
2、十進制小數轉換為二進制小數原理
關於十進制小數轉換為二進制小數
假設一十進制小數B化為了二進制小數0.ab的形式,同樣按權展開,得
B=a(2^-1)+b(2^-2)
因為小數部分的位權是負次冪,所以我們只能乘2,得
2B=a+b(2^-1)
注意a變成了整數部分,我們取整數正好是取到了a,剩下的小數部分也如此。
值得一提的是,小數部分的按權展開的數位順數正好和整數部分相反,所以不必反向取余數了。
3. 計算機常用進制及相互轉換
計算機中的二進制
在計算機中使用 補碼表示悶啟信息
在計算機中一個數據位 為 1bit ,一個位元組由8個bit表示 稱為 1Byte
計算機中常用的進制轉換
8b = 1B
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
二進制轉換為十進制
0010 0011=1x2^5+1x2^1+1x2^0=35
八進制轉換為十進制
0234 0756
八進制以0開頭,二進制數以0b開頭,十六進制以0x開
0023 0067轉換為十進制數方法為下:
2x8^5+3x8^4+6x8+7=77879
十六進制轉換為十進制
0001 12ad = 1*16^4+1x16^3+2x16^2+10x16+13=70317
十進制轉換為2進制
除數逆取余:簡述就是十進制數除以二,分別依次可以得到0與1,一直除到出不掉2為止,余數取1,按照螞碰如逆順序排列余數,所得的余數的集合就是該十進制數的二進制形式。
33 ===》 0010 0001
十進制轉換為八進制
78 78/8=9......6 9/8=1......1 1/8=0......1,所以結果逆取余數:116
116/8/=14......4 14/8=1......6 1/8=0......1所以同上方:164
十進制轉換為16進制
486/16=30......6 30/16=1......14
1/16=0......1 所以按照除數逆取余原則結果為: 1e6
常用進制之間的轉換
將其他進制轉換為十進制
方法 : ==位權展開法==
權重的計算方法 (進制) [位數-1] 進制的位數-1次冪
==每一位數字與對應的權重相乘,然後將乘積相加==
二進制轉十進制
八進制轉十進制
十六進制轉十進制
將十進制轉換為其他進制
方吵銷法 : 短除法
除==k==逆取余
將十進制轉二進制
將十進制轉八進制
將十進制轉十六進制
迂迴路線 : ==先將十進制轉換為二進制,再組合為八進制或者十六進制==
把二進制每三位 組合到一起組成 八進制
把二進制每四位組合到一起,組成十六進制