vc 如何將二進位制轉換為十六進位制

時間 2021-10-30 05:26:14

1樓:匿名使用者

每4位二進位制數和一位十六進位制數相對應,直接按查表方式轉換就行了.

2樓:匿名使用者

char a='a';

char pbuff[10];

atoi(a,pbuff,16);//把字元a轉換成ascii裡面的碼數為65,然後把65按轉成16進位制放入pbuff這個字串裡.

3樓:匿名使用者

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 第四位

最後得八進位制數: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,即是二進位制的值。

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

c語言怎麼把16進位制轉化為二進位制

4樓:

//將16進位制的數儲存到一個陣列中,並將它一個個輸出#include

#define n 16

int main()

for (i = 0; i != n; ++i)printf("\n");

return 0;

}示例執行結果:

input a 16進位制數: abcd

1010 1011 1100 1101

c語言--二進位制轉十六進位制

5樓:

看看這個行不行?希望對你有幫助……

#include "stdafx.h"

#include "stdio.h"//

#include "string.h"//#include "conio.h"//

#include "stdlib.h"//void convert(char *input, char *output)

for(ii=nx;ii9 ? 0x37 : '0');

}*(output+i)=null;

}void main(void)

for(ii=0;ii

else if(rc=='\b' && i)else if(rc=='0'||rc=='1')}pbin[ii][i]=null;//設定字串結束標記}for(i=0;i

free(pbin);}

6樓:西平司馬

//vc6下完美執行通過

#include

#include

#include

#include

void convert(char *input, char *output)

int j = 0;

while (len1>0)

// 轉換成16進位制數表示

sum = sum + '0';

if ('9' '9' + 6)

//十六進位制數放到output陣列相應位置output[--pos] = sum;}}int main()

;scanf("%d", &groupnum);

for (int i=1; i<=groupnum; i++);char output[256] = ;

fflush(stdin); //記得清楚輸入緩衝區,否則每次回車會影響

gets(input);

convert(input, output);

char format[32] = ;

sprintf(format, "\ncase %d: ", i);

strcat(total, format);

strcat(total, output);

}printf("%s\n", total);}

c++怎麼吧十六進位制字串轉為相應的二進位制字串,比如「ff」轉為對應的「11111111」

7樓:匿名使用者

int x,n,ss[256];

char s[256];

n=0; x=0x0af;

while ( x )

for ( i=0;i

s[n]=0;

至此,字串s中儲存了x的二進位制表示字串。

8樓:

//#include "stdafx.h"//vc++6.0加上這一行.

#include

using namespace std;

void hextobinary(int x)void main(void)

9樓:匿名使用者

看程式吧。

gnu c++編譯。

10樓:匿名使用者

有個對照表2進位制0---15 16進位制: 0000(0) 0001(1) 0010 (2) 0011 (3)0100 (4) 0101 (5) 0110 (6) 0111(7) 1000 (8) 1001(9) 1010(a) 1011 (b) 1100(c) 1101(d) 1110 (e) 1111(f)

四位2禁制代表一位16禁制 11111111表示ff

十六進位制轉二進位制,十六進位制如何轉換為二進位制

灰灰吃瓜 轉換如下 首先把十六進位制數04271544中的每一位數轉換為二進位制數,每個數要分四位,不足四位的前面加零,請看下面演示 0 0000 4 0100 2 0010 7 0111 1 0001 5 0101 4 0100 4 0100 將得出四位二進位制數串連起來就是結果了 所以,十六進位...

二進位制數10010111轉換為十六進位制數是

風若遠去何人留 二進位制和16進位制是四位對一位的關係。1001 的十六進位制是9 0111的16進位制是7 所以這個是97h選b 十六進位制是四位一組的,所以 1 8 0 4 0 2 1 1 9 0 8 1 4 1 2 1 1 7 合起來97 百小度 8位二進位制數,從右邊起每四個分成一組,再每組...

66 625 10怎麼轉換為二進位制

你以十進位制的數除以你所要轉換的進位制數,把每次除得的餘數記在旁邊,所得的商數繼續除以進位制數,直到餘數為0時止。例如你要把100轉換成八進位制 100 8 12.餘數為4 12 8 1.餘數為4 1 8 0.餘數為1 然後把相應的餘數從低向高順著寫出來,如上的為144,此即為100的八進位制表示形...