十进制转BCD C语言程序
时间: 2024-09-13 11:02:01 浏览: 48
十进制转换成BCD(二进制补码编码)的过程通常用于处理精度较高的数字表示。在C语言中,我们可以编写一个函数来实现这个转换。下面是一个简单的示例,它将一个两位数的十进制转换为对应的BCD形式:
```c
#include <stdio.h>
union BCD {
unsigned char bcd[2]; // 8位存储两个4位二进制数
int decimal;
};
void dec_to_bcd(int num) {
union BCD bcd;
if (num >= 0 && num <= 9) { // 对于一位数
bcd.bcd[0] = num / 10; // 最高位
bcd.bcd[1] = num % 10; // 第低位
} else if (num >= 10 && num <= 99) { // 对于两位数
bcd.decimal = num / 10; // 高10位
bcd.bcd[1] = (bcd.decimal * 10 + num % 10); // 将低10位转换为BCD
}
printf("BCD representation: %d %d\n", bcd.bcd[0], bcd.bcd[1]);
}
int main() {
int input;
printf("Enter a two-digit decimal number: ");
scanf("%d", &input);
dec_to_bcd(input);
return 0;
}
```
在这个例子中,`dec_to_bcd` 函数接收一个两位的十进制数,并通过计算将其转换为BCD形式。注意,对于大于10的数,需要额外处理高10位。
阅读全文