首页  > 教育解读  > c十进制怎么转二进制

c十进制怎么转二进制

2025-05-06 23:43:40
耐性与骨气
耐性与骨气已认证

耐性与骨气为您分享以下优质知识

将十进制数转换为二进制数在C语言中可以通过以下两种常见方法实现:

一、整数部分转换(推荐使用除2取余法)

基本原理

通过不断将十进制数除以2,记录余数,并将余数倒序排列,即可得到二进制表示。具体步骤包括:

- 使用`%`运算符获取余数(`i % 2`);

- 将商赋值给`i`(`i /= 2`);

- 将余数存储在数组中,最后倒序输出。

示例代码

```c

include

void decimalToBinary(int n) {

int binary = {0}; // 存储二进制结果

int index = 0;

// 除2取余,记录余数

while (n >

0) {

binary[index++] = n % 2;

n /= 2;

}

// 倒序输出二进制数

for (int i = index - 1; i >

= 0; i--) {

printf("%d", binary[i]);

}

printf("n");

}

int main() {

int num;

printf("请输入一个十进制整数: ");

scanf("%d", &num);

decimalToBinary(num);

return 0;

}

```

二、小数部分转换(乘2取整法)

基本原理

通过将十进制小数部分乘以2,取整数部分作为二进制位,重复此过程直到小数部分为0或达到所需精度。

示例代码

```c

include

void decimalToBinaryFraction(double fraction, int precision) {

printf("二进制小数部分为: ");

for (int i = 0; i < precision; i++) {

fraction *= 2;

int bit = (int)fraction;

printf("%d", bit);

fraction -= bit;

}

printf("n");

}

int main() {

double num;

int precision = 10; // 设置精度

printf("请输入一个十进制小数: ");

scanf("%lf", &num);

decimalToBinaryFraction(num, precision);

return 0;

}

```

三、注意事项

整数范围:

上述方法适用于0-32767之间的整数(需使用16位数组存储)。对于更大数值,建议使用动态内存分配或字符串处理。

小数精度:乘2取整法需设置精度,避免无限循环。例如0.1转换为二进制会无限循环,通常需四舍五入。

通过以上方法,可以灵活实现十进制与二进制之间的转换。