十進位制轉十六進位制,十進位制轉化為十六進位制怎麼算

2021-12-23 01:01:33 字數 6144 閱讀 9446

1樓:天方夜譚的哆啦a夢

1、十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,而十進位制的17在十六進位制中是11,以此類推,十進位制的30在十六進位制中是1e。

2、輸入格式 ,輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647。

3、輸出格式,輸出這個整數的16進製表示。

4、樣例輸出 ,1e:

#include

#include

#include

using namespace std;

int main() while (shi>=16);

if (shi<10)

ans += shi+'0';

else

ans += shi-10+'a';

for (int i=ans.length()-1; i>=0; i--)

cout

擴充套件資料

十六進位制轉換為十進位制

十六進位制數轉十進位制數方法:十六進位制數按權,從十六進位制數的右邊第一個數開始,每一個乘以16的n次方,n從0開始,每次遞增1。然後得出來的每個數相加即是十進位制數。

2樓:渾楣桖

我覺得最簡單的方法是直接轉16進位制:

1610/16=100……10(a);

100 /16=  6……4;

6  /16=  0……6;

故:1610(10)=64a(16)

因此,只需要把每次的餘數保留就是得到的結果,一直除到商為0。

要把1610轉換成16進位制,**如下:

3樓:匿名使用者

直接轉16進位制:

1610/16=100……10(a);

100 /16= 6……4;

6 /16= 0……6;

故:1610(10)=64a(16).

先轉2進位制:

1610/2=805……0;

805 /2=402……1;

402 /2=201……0;

201 /2=100……1;

100 /2=50 ……0;

50 /2=25 ……0;

25 /2=12 ……1;

12 /2=6 ……0;

6 /2=3 ……0;

3 /2=1 ……1;

1 /2=0 ……1.

1610(10)= 0110 0100 1010(2)1610(10)= 64a(16)

2進位制——16進位制轉換表;

0--0000

1--0001

2--0010

3--0011

4--0100

5--0101

6--0110

7--0111

8--1000

9--1001

a--1010

b--1011

c--1100

d--1101

e--1110

f--1111

4樓:校連枝顧俏

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,反取餘數就行(短除,反取餘數,自己看相關書吧)

5樓:毓人

(1610)十=((((0*1010+1)*1010+110)*1010+1)*1010+0)二

=(((1*1010+110)*1010+1)*1010+0)二=(((1010+110)*1010+1)*1010+0)二=((10000*1010+1)*1010+0)二=((10100000+1)*1010+0)二=(10100001*1010+0)二

=(11001001010)二

=(110 0100 1010)二

=(64a)十六

6樓:敖潤達安雙

我從觸控式螢幕輸入十進位制數值,改變變頻器頻率,變頻器用modbus通訊,接收的是十六進位制數。比如:觸控式螢幕輸入500變頻器要接收的卻是01f4

檢視原帖》

十進位制轉化為十六進位制怎麼算

7樓:深圳俊竹科技****

十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個

十六進位制轉化為十進位制計算方式,按權、相加即得十進位制數。

8樓:肥仙女

十進位制轉化為十六進位制**:

#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

9樓:匿名使用者

整數部分,就是指小數點前的位數,除以16取餘數,然後把所得數寫成得數+餘數;

小數點後的部分,要乘以16,依次寫出來就可以了例(91.875)這是十進位制的數轉換成十六進位制的就是(5b.e)91/16得5餘11就可以寫成5b

0.875*16得14就是e

10樓:匿名使用者

就是讓十進位制數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個數(逆序),讀出來的十進位制數比如12就對應16進位制的c

11樓:匿名使用者

用十進位制的數除以 16,得出一個商和一個餘數,如果商大於 15,繼續用商除以 16,迴圈操作,一直除到商小於等於 15,再用商和餘數連起來,所得的數就是十六進位制的整數了。

12樓:匿名使用者

十進位制轉二進位制(整數及小數部分):

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,即是二進位制的值。

若要將二進位制轉為八進位制,將二進位制的位數由右向左每三位一個單位分隔,將事單位對照出八進位制的值即可。

二轉十進位制,二進位制轉十進位制公式

r進位制 r為任何整數 轉換為十進位制的方法是 整數部分從小數點右往左依次按位乘以r的0次冪,r的1次冪,r的2次冪,小數部分從小數點後向右依次按位乘以r的 1次冪,r的 2次冪,r的 3次冪,將各位結果相加即可。所以 10 1101 0110 1011.11 2 2 13 2 11 2 10 2 ...

十六進位制數如何轉換成十進位制,十六進位制轉換成十進位制的具體演算法?

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...

十六進位制數0x10000轉成十進位制數是多少

十六進位制數copy0x10000轉成十進位制數是65536,0x是十六進位制數的前導符,0x10000表示,這是一個十六進位制數,數值為10000。轉換方法 10000 十六進位制 1 x 164 0 x 163 0 x 162 0 x 161 0 x 16 0 65536 十進位制 在c c 等...