1.十进制数到二进制之间的转换
对于十进制数正整数转换成二进制的方法是:
算法描述:
1)十进制数作为被除数除2得到的余数0,或者1 余数放在最低位
2)十进制数除2得到的商作新的被除数,如果被除数不是0继续上述过程1);计算方法示例:
#include <stdio.h>
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<stdlib.h>
#include<stdio.h>
int main()
{
int num = 10;
char str[100];
itoa(num, str, 2);
int n = atoi(str);
printf("%d\n",n); return 0; }。