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轉... 轉化1個數為r進位制字串。字串表示,採用除r取餘法,重複的計算n r的餘數和n r的商,依次得到r進位制的各個字元,值得注意的是,得到的r進位制的各個字元順序是從低位到高位,這和我們平時書寫的順序是相反的,為了和書寫順序保持一致,在最後階段需要將字串首尾交換。步驟1 將緩衝區首地址p和head 步驟... 十進位制與二進位制之間的轉換方法!把二進位制每四個分成一組。從右向左例如 10011100 最右邊1100 從右向左分別是1 2 4 8 16 32 64 有1的就相加 就是 4 8 16 128 懂不。二進位制和十六進位制轉換方法!1111 8 4 2 1 15 f 1110 8 4 2 0 14...十六進位制轉換為二進位制怎麼操作,十六進位制轉換為二進位制怎麼操作
組合語言程式設計將二進位制數轉換為16進位制數並顯示的功能
將二進位制十進位制十六進位制互相轉換最快的方法是什麼