c语言二进制数组
发布时间: 2023-05-26 01:00:27
Ⅰ 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了,可能程序中有些错误,但是进制转换算法本身是没有问题的,也许可以参考一下,希望对楼主有所帮助,早日解决问题
Ⅱ C语言将二进制字符数组转化为十进制源码
//自己写的一些代码,可以运亩笑尺行,源代码如下,运行环境为VisualC++6.0,自定义函数translate()实现将二进制字符数组//转化为十进制
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<dos.h>
voidtranslate(char*p,intm);
intmain()
{
charbinary[10];//二进制字符数组
intsign=0;
printf("请输入迅高二进制数(不超过十位) ");
scanf("%s",binary);
while(binary[sign]!='