往期C语言实战练习
★ C语言编程:验证哥德巴赫猜想
★ C语言能打印任意大小的菱形?当然!
★ C语言编程:打印一个圆形
★
C语言编程:输入一个字符串,然后逆序输出
★ 求1000以内的水仙花数
★ C语言编程判断回文数
★ 随机产生 100 之内的整数并赋值给二维数组 a[3][4],并求所有元素和
★
C语言编程求阶乘和:1!+2!+3!+ ... + n!
正文开始
+
大家好,我是阿汤哥,今天在后台看到有朋友问十进制转换成二进制,今天我们就来看看这个问题。 你知道,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;
}
运行结果
往期推荐好文
编程软件下载与安装:
★C语言编程工具的选择 ★
一步步教你下载安装编程工具CodeBlocks和编写第一个程序
★一步步教你下载安装编程工具VS2019和编写第一个程序
★一步步教你下载安装编程工具VC++6.0和编写第一个程序
其他好文★i++和++i有什么区别?★看完你就明白:什么情况下该用int main(int argc, char *argv[])而不是int main(void)★C语言编程:打印一个圆形★福利:50本C语言电子书免费送了!
★
[必读]C语言学习者常见问题及回答
★
硬核!用这个工具看了i++和++i的汇编代码,小白也能明白它们的区别
点个在看
你最好看