正文开始
+
大家好,我是阿汤哥,今天在后台看到有朋友问十进制转换成二进制,今天我们就来看看这个问题。 你知道,C语言中printf打印数的格式化表示方法有十进制、八进制、十六进制,但没有二进制。 我们需要自己编程实现。 十进制怎么转换成二进制?用“除2取余数,余数再逆向排序法”。 举个例子: 【例】把十进制数13转换成二进制 【步骤】- 13除以2,商为6,余数1
- 6除以2,商为3,余数0
- 3除以2,商为1,余数1
- 1除以2,商为0,余数1
/**
* Author: 阿汤哥
* 微信公众号:C语言修仙
* 功能: 十进制转二进制
*/
# include
# include
/*
* 函数功能:十进制转二进制
* @ num:要被还换成二进制的十进制数
* 返回值:二进制数
*
*/
int transfer_10_to_2(int num){
int a=num, b, c, n=0;
for (int i = 1; a !=0; i++)
{
b = a / 2; //被除数
c = a % 2; //商
n = c * (int)pow(10, i-1) + n; //余数
a = b; //新的被除数,供下一步使用
}
return n;
}
int main(){
int number;
while (1)
{
printf("请输入一个十进制数:\n");
scanf("%d", &number);
int num = transfer_10_to_2(number);
printf("%d的二进制输出为:%d\n\n", number, num);
}
return 0;
}
运行结果
点个在看
你最好看
