C语⾔中实现⼗进制转⼆进制输出
众所周知,C中以⼋进制,⼗进制和⼗六进制都可以通过%o,%d和%x轻松实现,然⽽唯独没有提供⼆进制输出的快速⽅式。
⽅法⼀:itoa函数
itoa函数将数值转换为字符串,通过规定转换进制实现。
#include<stdio.h>
#include<stdlib.h>
//注意必须调⽤stdlib.h函数库
int main(void)
{
while(1)
{
int a;
printf("请输⼊⼀个⼗进制数: ");
scanf("%d",&a);
char str[30];
itoa(a,str,2);//2即是代表转换为2进制
printf("转换成⼆进制数是: %s\n\n",str);
}
return 0;
}
函数:itoa(integer to array)
功能:把⼀整数转换为字符串
⽤法:char *itoa(int value, char *string, int radix); 将int整型数转化为⼀个字符串,并将值保存在数组string中。
value: 待转化的整数。
radix:是基数的意思,即先将value转化为radix进制的数,范围介于2-36,⽐如10表⽰10进制,16表⽰16进制。
* string:保存转换后得到的字符串。
返回值:
char *:指向⽣成的字符串, 同*string。
头⽂件:"stdlib.h"
⽅法⼆:短除法
短除法,将⼗进制转换为⼆进制的笔算过程。
#include<stdio.h>
int main()
{
int a,b,k,i;
int remainder[30];
while(1)
{
//定义了⼀个remainder数组,⽤来收集短除法除得的余数,栈倒序输出。 printf("请输⼊⼀个⼗进制数: ");
scanf("%d",&a);
k=0;
while(a!=0)
{
b=a/2;
k++;
remainder[k]=a-b*2;
a=a/2;
};
printf("转换成⼆进制数是: ");
for (i=k; i>=1; i--)
{
printf("%d",remainder[i]);
}
printf("\n\n");
c++中string的用法
}
return 0;
}
感谢博主:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论