十进制数转换成二进制数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.十进制数到二进制之间的转换
对于十进制数正整数转换成二进制的方法是:
算法描述:
1)十进制数作为被除数除2得到的余数0,或者1 余数放在最低位
2)十进制数除2得到的商作新的被除数,如果被除数不是0继续上述过程1);计算方法示例:
#include
int main()
{
int dectobin[24]={0};
int i;
scanf("%d",&i);
int j=0;
for(; j<24&&i>=1;j++)
{
dectobin[j]=i%2;
i=i/2;
}
j--;
for(;j>=0;j--)
printf("%d",dectobin[j]);
printf("\n");
return 0;
}
2、使用库函数实现二十进制到二进制的转换
常写硬件代码的程序猿们,经常会遇到数字的二进制转换问题,尤其是在C 语言定点化的过程中,与二进制的接触更多。但经常会头疼没有一个好点的工具可以帮助我们把一系列十进制数变成二进制表达方式。其实,C语言标准库中就有实现这种功能的函数,下面做简单介绍。
itoa()函数:函数功能是把数据转换成字符串
函数原形:char *itoa(int value, char *string, int radix);
该函数有3个输入参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用的基数。
返回值:指向num这个字符串的指针
函数原型:int atoi(const char *nptr);
在上例中,转换基数为10。10:十进制;2:二进制……
先把num转换为二进制的字符串,再把该字符串转换为整数。
#include
#include
int main()
{
int num = 10;
char str[100];
itoa(num, str, 2);
int n = atoi(str);
printf("%d\n",n); return 0; }