C语言2进制转16进制

来源:百度知道 编辑:UC知道 时间:2024/05/06 15:45:46
怎么转?要代码能运行,能有效果的
能把注释写一下吗?写注释的加30(详细)

2进制还是16进制就是一个表示形式,存在内存中的变量是不用转的,就是显示出来给人看不一样。你可以这样转

16进制显示:printf("Variable a=%x",a);
2进制显示:
char * int2bin(const int in,char *out)
{
int i,r;
char t[32],*tp;
r=in;
tp=t;

while(r>=1)
{
*tp++=r%2+48;
r/=2;
}
*tp--='\0';
while(*out++=*tp--);
*out='\0';
return out;
}

如果你是已经有了2进制的字符串,转换成一个数,可以参照以上程序很容易就编出来了

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[20],b[5];
int i,result = 0,k = 1,j = 0;
cout << "输入二进制数:" << endl;
gets(a);
for(i = strlen(a)-1;i >= 0;i --)
{
if(a[i] == '1') result += 1<<(k-1);
if(k == 4 || i == 0)
{
switch(result)
{
case 10: b[j++]='A';break;
case 11: b[j++]='B';break;
case 12: b