1樓:
對於整數部分,用被除數反覆除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。
例如將487710轉成十六進位制:
4877÷16=304....13(d)
304÷16=19....0
19÷16=1....3
1÷16=0....1
這樣就計到487710=130d16。
擴充套件資料
16進位制轉10進位制:
16進位制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
所以,在第n(n從0開始)位上,如果是是數 x (x 大於等於0,並且x小於等於 15,即:f)表示的大小為 x * 16的n次方。
例:2af5換算成10進位制:
用豎式計算:
第0位: 5 * 16^0 = 5
第1位: f * 16^1 = 240
第2位: a * 16^2= 2560
第3位: 2 * 16^3 = 8192
2樓:嬴笑萍邰沈
2進位制從最後一位開始(從右向左),把每一位數字分別乘以2^0,2^1,2^2,2^3...然後全部加起來就是對應的10進位制數了
2進位制轉成8進位制,從右向左,每三位一組隔開(最左邊那組可能不到3位),然後用計算10進位制的方法,計算每一組的三位二進位制數所對應的數字,然後把每一組的結果,從右向左寫出來,比如(110110)2進位制=(110|110)2進位制=(66)8進位制
2進位制轉成16進位制同上面類似,只是4位2進位制數一組,(110110)2進位制=(11|0110)2進位制=(36)16進位制
n進位制轉成10進位制的,從右向左,每一位分別乘以n^0,n^1,n^2,n^3...然後全部加起來就可以了
沒有1進位制的數,n進位制數,只要用相應的10進位制數短除n,反取餘數就行(短除,反取餘數,自己看相關書吧)
十進位制轉化為十六進位制怎麼算
3樓:深圳俊竹科技****
十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個
十六進位制轉化為十進位制計算方式,按權、相加即得十進位制數。
4樓:肥仙女
十進位制轉化為十六進位制**:
#include "stdio.h" int main();printf("請輸入一個十進位制數:");
scanf("%d",&num); while(num>0) printf("轉化為十六進位制的數為:0x"); for(i=i-1;i>=0;i--)//倒序輸出 printf("\n");
}程式執行結果:
擴充套件資料:進位制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。
位權是指,進位制中每一固定位置對應的單位值。
舉例:二進位制數轉換為十進位制數
二進位制數第0位的權值是2的0次方,第1位的權值是2的1次方……所以,設有一個二進位制數:0110 0100,轉換為10進製為:
下面是豎式:
0110 0100 換算成十進位制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0
公式:第n位2(n)
---------------------------100用橫式計算為:
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100
0乘以多少都是0,所以我們也可以直接跳過值為0的位:
1 * 22 + 1 * 25 +1*26 = 100
5樓:匿名使用者
整數部分,就是指小數點前的位數,除以16取餘數,然後把所得數寫成得數+餘數;
小數點後的部分,要乘以16,依次寫出來就可以了例(91.875)這是十進位制的數轉換成十六進位制的就是(5b.e)91/16得5餘11就可以寫成5b
0.875*16得14就是e
6樓:匿名使用者
就是讓十進位制數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個數(逆序),讀出來的十進位制數比如12就對應16進位制的c
7樓:匿名使用者
用十進位制的數除以 16,得出一個商和一個餘數,如果商大於 15,繼續用商除以 16,迴圈操作,一直除到商小於等於 15,再用商和餘數連起來,所得的數就是十六進位制的整數了。
8樓:匿名使用者
十進位制轉二進位制(整數及小數部分):
1、把該十進位制數,用二因式分解,取餘。
以235為例,轉為二進位制
235除以2得117,餘1
117除以2得58,餘1
58除以2得29,餘0
29除以2得14,餘1
14除以2得7,餘0
7除以2得3,餘1
3除以2得1,餘1
從得到的1開始寫起,餘數倒排,加在它後面,就可得11101011。
2、把十進位制中的小數部份,轉為二進位制。
把該小數不斷乘2,取整,直至沒有小數為止,注意不是所有小數都能轉為二進位制!
以0.75為例,
0.75剩以2得1.50,取整數1
0.50剩以2得1,取整數1,順序取數就可得0.11。
1、二進位制數、八進位制數、十六進位制數轉十進位制數
有一個公式:二進位制數、八進位制數、十六進位制數的各位數字分別乖以各自的基數的(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、十進位制數轉二進位制數、八進位制數、十六進位制數
方法是相同的,即整數部分用除基取餘的演算法,小數部分用乘基取整的方法,然後將整數與小數部分拼接成一個數作為轉換的最後結果。
例:見四級指導16頁。
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 第四位
最後得八進位制數:12765
三、十進位制數十六進位制
如:76521轉為十六進位制
16|76521
4782 ――9 第一位(個位)
298 ――14 即 e 第二位
18 ――10 即 a 第三位
1 ―― 2 第四位
最後得12ae9
二進位制與十六進位制的關係
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,即是二進位制的值。
若要將二進位制轉為八進位制,將二進位制的位數由右向左每三位一個單位分隔,將事單位對照出八進位制的值即可。
十六進位制轉換成十進位制的具體演算法?
9樓:sa_sa_陳
十六進位制轉換成十進位制的具體演算法是:
1、首先明白16進位制數(從右到左數是第0位,第1位,第2位……)的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方,依次這樣排列下去。
2、明白abcdef表示的二進位制數字分別是10,11,12,13,14,15。
3、十六進位制轉換成十進位制的公式是:要從右到左用二進位制的每個數去乘以16的相應次方,然後這些數字相加就是了。
例1:2af5換算成10進位制:
第0位: 5 * 16^0 = 5
第1位: f * 16^1 =15*16^1= 240
第2位: a * 16^2= 10* 16^2=2560
第3位: 2 * 16^3 = 8192
結果就是:5 * 16^0 + 15 * 16^1 + 10 * 16^2 + 2 * 16^3 = 10997
例2:ce換算成10進位制:
第0位:e*16^0=14*16^0=14
第1位:c*16^1=12*16^1=192
結果就是:14*16^0+12*16^1=206
16進位制即逢16進1,每一位上可以是從小到大為0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f共16個大小不同的數。16進位制轉換即16進位制與其他不同進位制之間的換算轉換。
十進位制轉化十六進位制,十進位制轉化十六進位制
可以先轉換成二進位制然後再轉換成十六進位制 最終結果為 12e3cf1eah 求超久的,我算出來是25c79d3cc 十進位制轉化為十六進位制怎麼算 十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個 十六進位制轉化為十進位制計算方式,按權 相...
十進位制怎麼轉換成十六進位制?
用短除法。用16作除數,去除需要轉換的十進位制數,記下商和餘數,再用16作除數,去除上一步的商,記下商和餘數,直到商為零。把每一步得到的餘數逆序排列,就是轉換成的16進位制。例如 把256轉換成16進位制。256 16 16 0,16 16 1 0,1 16 0 1,所以,256轉換成16進位制就是...
C十六進位制轉換成十進位制的問題
十六進位制轉十進位制本身很簡單 如 0102030aadaf 16 15 16 0 10 16 1 13 16 2 10 16 3 10 16 4 0 16 5 3 16 6 0 16 7 2 16 8 0 16 9 1 16 10 0 16 11 10 依據這個思路可以解決任何進位制的互相轉換問題...