在C语言中,将十进制数转换为二进制数主要有以下两种方法,均采用“除2取余”法:
一、方法一:使用数组存储余数并倒序输出
核心逻辑 通过循环将十进制数不断除以2,记录每次的余数(0或1),然后将余数从低位到高位依次输出。
示例代码
```c
include int main() { int n, i, a = {0}; // 定义存储余数的数组 printf("请输入一个十进制整数: "); scanf("%d", &n); int index = 0; while (n > 0) { a[index++] = n % 2; // 记录余数 n /= 2; // 更新商 } printf("十进制数%d转换成二进制数是: "); for (i = index - 1; i >= 0; i--) { // 倒序输出 printf("%d", a[i]); } return 0; } ```
二、方法二:直接输出余数(无需存储)
核心逻辑
在循环中直接输出余数,无需额外存储,通过控制循环次数控制输出位数。
示例代码
```c
include int main() { int n; printf("请输入一个十进制整数: "); scanf("%d", &n); printf("十进制数%d转换成二进制数是: "); while (n > 0) { printf("%d", n % 2); // 直接输出余数 n /= 2; // 更新商 } return 0; } ```
说明
适用范围: 上述方法适用于 正整数
位数控制:示例代码中数组大小为32,可根据实际需求调整,避免溢出。
以上方法均基于“除2取余,逆序排列”的基本原理,选择适合的实现方式即可。