永发信息网

C语言如何把一个十六进制数转换为二进制数组输出

答案:5  悬赏:30  手机版
解决时间 2021-02-06 05:24
C语言如何把一个十六进制数转换为二进制数组输出
最佳答案
楼下的程序应该是将16进制转化为10进制数组,将其改进一下即可,也就是加上将十进制转换为二进制的程序段:全程序如下:
#include <stdio.h>
void main(
{
int i;
int m = 0;
char c[10];
char *r;
scanf("%s",c);
if(c[0]!='0'&&c[1]!='x'&&c[1]!='X')
{
printf("不是十六进制数\n");
}
else
{{
i = 2;
while (c[i]!='\0')
{
m = m*16+c[i]-'0';
i++;
}
if(m=0)
printf("%d\n",0);
else
for(i=0;m!=0;i++)
{
*(r+i)=m%2;
m=m/2;
}
for(;i-->=0;)
printf("%d",*(r+i));
printf("\n");
}
}关于十六进制直接转换为二进制数,直接做很简单,但是用程序实现起来不容易,所以先转换为十进制,再转为二进制,虽有点笨,也算是一种方法吧呵呵,我好久没用c了,可能程序中有些错误,但是进制转换算法本身是没有问题的,也许可以参考一下,希望对楼主有所帮助,早日解决问题
全部回答
Case "0": B = B & "0000" Case "1": B = B & "0001" Case "2": B = B & "0010" Case "3": B = B & "0011" Case "4": B = B & "0100" Case "5": B = B & "0101" Case "6": B = B & "0110" Case "7": B = B & "0
#include <stdio.h> void main() { int i; int a = 0; char c[10]; scanf("%s",c); if(c[0]!='0'&&c[1]!='x') { printf("不是十六进制数\n"); } else { i = 2; while (c[i]) { a = a*16+c[i]-'0'; i++; } printf("%d",a); } }
有一个非常简单的算法,直接映射: 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0#include <stdio.h> void main() { int i=0; int m = 0; char c[10]; int r[8]={0}; scanf("%s",c); if(c[0]!='0'&&c[1]!='x'&&c[1]!='X') { printf("不是十六进制数\n"); } else { i = 2; while (c[i]!='\0') { if(c[i]>='0' && c[i]<='9') { m = m*16+c[i]-'0'; } if(c[i]>='a' && c[i] <= 'f') { m = m*16+c[i]-'a'+10; } i++; } printf("i = %d\n",i); printf("m = %d\n",m); if(m==0){ printf("%d\n",0); } else{ for(i=0;m!=0;i++) { r[i]=m%2; m=m/2; } for(i=7;i>=0;i--){ printf("%d",r[i]); } } } }
#include #include #include void f(int a,int b,char s[]) { char r[17]; int i,n,t,k; for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) { if(*(s+i)<='9') t+=(*(s+i)-'0')*int(pow(a,n)); else t+=(*(s+i)-'a'+10)*int(pow(a,n)); } for(i=0;t!=0;i++) { k=t%b; if(k>9)r[i]='a'+k-10; else r[i]='0'+k; t/=b; } r[i]='\0'; s=strrev(r); printf("%s",s); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乐山市井研县竹园派出所地址在什么地方,我要
我是今年的考生,我因为家里不支持我在继续读
中国联通武当山鹏程合作厅我想知道这个在什么
三国群英传OL属性破500有什么好处
骆驼与哈巴狗,请写一篇作文请以童话或议论文
在哪里可以看到1至140集的精灵宝可梦xy(神奇
秦国的国家性质是什么??
乐山市井研县分全派出所地址在什么地方,想过
齐鲁油漆总经销我想知道这个在什么地方
素概的意思是什么啊?知道的请说下!
在北方老木箱一般是什么木头做的很重
乐山市井研县来凤派出所地址在什么地方,我要
医师处方必须遵循的原则是A.科学、合理、经济
运放做跟随器有什么要求
家家旺宾馆怎么去啊,有知道地址的么
推荐资讯
公文的文种包括哪些?
美迪英语地址有知道的么?有点事想过去
总体的意思是什么啊?知道的请说下!
新烤的白酒有霉味,还能吃吗?
百度阅读app怎么样
韵达迪庆州香格里拉服务站地址在什么地方,想
如果想让公司炒掉,我应该怎么办?求大神帮助
276次列车到泰来几点
摸了下iphone SE 怎么感觉塑料感好重
流沙舞蹈班在哪?
单选题下列有关实验课题与相应方法的叙述,错
细香葱的栽培技术
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?