整形数转BCD码 C语言代码
时间: 2024-09-07 21:01:01 浏览: 52
在C语言中,将十进制整数转换成BCD码(二进制补码表示的十进制数),通常会涉及到两个步骤:计算每个位的值,然后将其转化为四位的BCD码。这里提供一个简单的函数示例,它接受一个十进制整数作为输入,并返回对应的四位BCD码数组:
```c
#include <stdio.h>
void intTobcd(int num, unsigned char bcd[]) {
// 遍历每一位
for (int i = 0; num > 0; i++) {
// 取余得到当前位的数值
int digit = num % 10;
// 将十进制转换为BCD码(最高两位为0)
bcd[i * 4] = ((digit / 5) << 4); // 十位(左移四位)
bcd[i * 4 + 1] = digit % 5; // 个位(直接放置)
bcd[i * 4 + 2] = 0x00; // 高位填充0
bcd[i * 4 + 3] = 0x00; // 更高位填充0
// 更新num
num /= 10;
}
}
// 示例使用
int main() {
int decimal = 12345;
unsigned char bcd[8]; // BCD码需要8个字节存储4位数字
intTobcd(decimal, bcd);
printf("BCD码: ");
for (int i = 0; i < 8; i++) {
printf("%02X ", bcd[i]);
}
return 0;
}
```
阅读全文