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 將得出四位二進位制數串連起來就是結果了 所以,十六進位... 風若遠去何人留 二進位制和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位二進位制數,從右邊起每四個分成一組,再每組... 你以十進位制的數除以你所要轉換的進位制數,把每次除得的餘數記在旁邊,所得的商數繼續除以進位制數,直到餘數為0時止。例如你要把100轉換成八進位制 100 8 12.餘數為4 12 8 1.餘數為4 1 8 0.餘數為1 然後把相應的餘數從低向高順著寫出來,如上的為144,此即為100的八進位制表示形...十六進位制轉二進位制,十六進位制如何轉換為二進位制
二進位制數10010111轉換為十六進位制數是
66 625 10怎麼轉換為二進位制