A. 二進制,八進制,十六進制之間怎樣快速轉換
有一個公式:二進制數、八進制數、十六進制數的各位數字分別乖以各自的基數的(N-1)次方,其和相加之和便是相應的十進制數。個位,N=1;十位,N=2...舉例:
110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D
110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D
110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D
2、十進制數轉二進制數、八進制數、十六進制數
方法是相同的,即整數部分用除基取余的演算法,小數部分用乘基取整的方法,然後將整數與小數部分拼接成一個數作為轉換的最後結果。
3、二進制數轉換成其它數據類型
3-1二進制轉八進制:從小數點位置開始,整數部分向左,小數部分向右,每三位二進制為一組用一位八進制的數字來表示,不足三位的用0補足,
就是一個相應八進制數的表示。
010110.001100B=26.14Q
八進制轉二進制反之則可。
3-2二進制轉十進制:見1
3-3二進制轉十六進制:從小數點位置開始,整數部分向左,小數部分向右,每四位二進制為一組用一位十六進制的數字來表示,
不足四位的用0補足,就是一個相應十六進制數的表示。
00100110.00010100B=26.14H
十進制轉各進制
要將十進制轉為各進制的方式,只需除以各進制的權值,取得其餘數,第一次的余數當個位數,第二次余數當十位數,其餘依此類推,直到被除數小於權值,最後的被除數當最高位數。
一、十進制轉二進制
如:55轉為二進制
2|55
27――1 個位
13――1 第二位
6――1 第三位
3――0 第四位
1――1 第五位
最後被除數1為第七位,即得110111
二、十進制轉八進制
如:5621轉為八進制
8|5621
702 ―― 5 第一位(個位)
87 ―― 6 第二位
10 ―― 7 第三位
1 ―― 2 第四位
最後得八進制數:127658
三、十進制數十六進制
如:76521轉為十六進制
16|76521
4726 ――5 第一位(個位)
295 ――6 第二位
18 ――6 第三位
1 ―― 2 第四位
最後得1276516
二進制與十六進制的關系
2進制 0000 0001 0010 0011 0100 0101 0110 0111
16進制 0 1 2 3 4 5 6 7
2進制 1000 1001 1010 1011 1100 1101 1110 1111
16進制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)
可以用四位數的二進制數來代表一個16進制,如3A16 轉為二進制為:
3為0011,A 為1010,合並起來為00111010。可以將最左邊的0去掉得1110102
右要將二進制轉為16進制,只需將二進制的位數由右向左每四位一個單位分隔,將各單位對照出16進制的值即可。
二進制與八進制間的關系
二進制 000 001 010 011 100 101 110 111
八進制 0 1 2 3 4 5 6 7
二進制與八進制的關系類似於二進制與十六進制的關系,以八進制的各數為0到7,以三位二進制數來表示。如要將51028 轉為二進制,5為101,1為001,0為000,2為010,將這些數的二進制合並後為1010010000102,即是二進制的值。
若要將二進制轉為八進制,將二進制的位數由右向左每三位一個單位分隔,將事單位對照出八進制的值即可。
一.在計算機應用中,二進制使用後綴b表示;十進制使用後綴d表示,八進制用Q表示,十六制使用後綴H表示。
二.二進制,十六進制與十進制的計算轉換
1.二進制轉換為十進制
計算公式:二進制數據X位數字乘以2的X-1次方的積的總和
例:10101011b=( )d
數據
1 0 1 0 1 0 1 1
X-1位
7 6 5 4 3 2 1 0
相應的十進制值即為:27 +25+23+21+20=128+32+8+2+1=171
2.十六進制轉換十進制
計算公式:二進制數據X位數字乘以16的X-1次方的積的總和(與二進制轉換十制進同理的,將底數換為16)
注意:在十六進制中,10-16依次用A,B,C,D,E,F表示
例:1F3E H=( )d
計算:1*16的3次方+16*16的2次方+3*16的1次方+15*16的0次方=1*4096+16*256+3*16+15*16=4096+4096+48+240=8480
三.十進制與二進制,十六制的計算轉換
1.十進制轉換為二進制
十進制數據數字除以2的余數的逆序組合
例:404d=( )b
2|404 餘0
2|202 餘0
2|101 餘0
2|50 餘1
2|25 餘0
2|12 餘1
2|6 餘0
2|3 餘1
2|1
計算結果便是:110101000
2.十進制轉換十六進制。。。與上面同理,注意的是10以上的數字用字母表示,除數是16
十六進制與二進制的轉換,建議通過十進制來進行中轉。
帶小數點的十進制轉換為二進制時同理,小數店後的數位指數為負指數
一、二進制數轉換成十進制數
由二進制數轉換成十進制數的基本做法是,把二進制數首先寫成加權系數展開式,然後按十進制加法規則求和。這種做法稱為"按權相加"法。
二、十進制數轉換為二進制數
十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。
1. 十進制整數轉換為二進制整數
十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
2.十進制小數轉換為二進制小數
十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。
然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。
回答者:HackerKinsn - 試用期 一級 2-24 13:31
1.二進制與十進制的轉換
(1)二進制轉十進制<BR>方法:"按權展開求和"
例:
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十進制轉二進制
· 十進制整數轉二進制數:"除以2取余,逆序輸出"
例: (89)10=(1011001)2
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十進制小數轉二進制數:"乘以2取整,順序輸出"
例:
(0.625)10= (0.101)2
0.625
X 2
1.25
X 2
0.5
X 2
1.0
B. 關於2進制到10進制的快速口演算法
可以用減法,比如
11111100
你就算100000000=2^8=256
然後11111100等於256-4=252.
十六進制到十進制也這么算吧。感覺。
如果是數比較小,可以用加法。
C. 怎麼把十進制轉化為二進制最簡單的方法
十進制轉化為二進制最簡單的方法如下:
1、整數轉換
十進制轉二進制的原理:十進制的數除以2,直到商為0,最後反向取余數。
2、小數轉換
對於小數,二進制 轉 十進制 比較簡單,仍是二進制數的每一位乘以2的n次方,小數點前面的 n 從零開始,每次加一;小數點後面的 n 從-1開始,每次減一,最後累加。
(3)二進制轉十進制高效演算法擴展閱讀:
二進制轉換為十進制:
整數二進制用數值乘以2的冪次依次相加,小數二進制用數值乘以2的負冪次然後依次相加
如果二進制數補足位數之後首位為1,那麼其對應的整數為負,那麼需要先取反然後再換算
比如11111001,首位為1,那麼需要先對其取反,即:-00000110
00000110,對應的十進制為6,因此11111001對應的十進制即為-6
D. 二進制轉十進制有沒有快速計算的方法
沒有別的快速法,只能加權記。這和十進制一樣,看到12045就知道是10000+2000+0+40+5,看到二進制11001101就知道是128+64+0+0+8+4+0+1。
E. 十六進制轉換成十進制的具體演算法
十六進制轉換成十進制的具體演算法是:
1、首先明白16進制數(從右到左數是第0位,第1位,第2位……)的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方,依次這樣排列下去。
2、明白ABCDEF表示的二進制數字分別是10,11,12,13,14,15。
3、十六進制轉換成十進制的公式是:要從右到左用二進制的每個數去乘以16的相應次方,然後這些數字相加就是了。
在進行進制轉換時有一基本原則:
轉換後表達的「量」的多少不能發生改變。二進制中的111個蘋果和十進制中的7個蘋果是一樣多的。
十進制中的數位排列是這樣的…… 萬 千 百 十 個 十分 百分 千分……
R進制中的數位排列是這樣的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……
可以看出相鄰的數位間相差進制的一次方。
F. 十進制轉換二進制怎麼快速計算
用湊數的方法. 簡單來說需要記憶的就是無論什麼進制,個位都是表示幾個1, 也就是個位上的基數是1.
舉例說明: 10D=?B
寫出二進制每位上的基數, 個位=1,高位=低位*2, 乘以2是因為要轉換成二進制, 寫到比10大為止
168421用這組數從大到小順序將10湊出來,用到的數下面寫1,沒用到的寫0
0101010包含1個8和1個2
因此10D=1010B
n進制基數: 個位1,高位=低位*n
G. 怎樣快速2進制10進制互相轉換
xp系統裡面有一個計算器,可以進行二進制和十進制的轉換!位置是:開始菜單→程序→附件→計算器。打開計算器後,默認的是簡單的計算器界面,我們要把它切換成科學計算器就可以進行二進制和十進制的轉換了!方法是:點擊計算器上的查看菜單,然後選擇科學計算型,就可以了!
例如:
你要把12轉換成二進制,只要用滑鼠點擊計算器輸入一二,然後點擊二進制,它就會顯示出1100。同理把二進制1010轉換成十進制,也是先輸入1010然後點擊十進制就會顯示為10了!!
H. java高效率計算兩個數的乘積
呵呵 樓上 錯了 這是第一感官的思想 其實計算機 的運算快慢 跟你的演算法有關系的 2*8 對我們人腦 自然是很簡單的 但對計算機 來說 就不行了 你想想 二進制轉十進制 是怎麼轉的 只要進行對2 移位 就可以了 對計算來說這是比較有效率的 呵呵 你自己想想吧 公司是對你 的 計算原理的考驗
I. vb 十進制轉二進制 大數模冪運算的快速演算法
圖省事,沒做界面,你自己改一下吧,代碼和效率可都是大大提高了哦!
Option Explicit
Private Function molar(a As Integer, b As Integer, n As Integer) As Long
Dim f As Long
If b = 0 Then
f = 1
Else
If b = 1 Then
f = a Mod n
Else
f = molar(a, b \ 2, n) * molar(a, b \ 2, n) Mod n
If b Mod 2 = 1 Then f = f * a Mod n
End If
End If
molar = f
End Function
Private Sub Command1_Click()
Dim a As Integer, b As Integer, n As Integer
' a = txta.Text
' b = txtb.Text
' n = txtn.Text
a = "2"
b = "30"
n = "10000"
' txtresult.Text = CStr(molar(a, b, n))
Print CStr(molar(a, b, n))
End Sub