用C语言实现8421bcd码
时间: 2024-01-21 21:40:07 浏览: 55
以下是用C语言实现8421BCD码的示例代码:
```c
#include <stdio.h>
// 将十进制数转换为8421BCD码
void decToBCD(int dec, int *bcd) {
int i, j;
for (i = 0; dec != 0; i++) {
bcd[i] = dec % 10;
dec /= 10;
}
for (j = i-1; j >= 0; j--) {
bcd[j] = (bcd[j] << 4) | 0x0F;
}
}
// 将8421BCD码转换为十进制数
int BCDtoDec(int *bcd, int len) {
int i, dec = 0;
for (i = 0; i < len; i++) {
dec = (dec * 10) + ((bcd[i] >> 4) & 0x0F);
dec = (dec * 10) + (bcd[i] & 0x0F);
}
return dec;
}
int main() {
int dec = 12345;
int bcd[10] = {0};
decToBCD(dec, bcd);
printf("十进制数:%d\n", dec);
printf("8421BCD码:");
for (int i = 0; i < 10; i++) {
printf("%02X ", bcd[i]);
}
printf("\n");
int dec2 = BCDtoDec(bcd, 10);
printf("转换回十进制数:%d\n", dec2);
return 0;
}
```
在这个示例代码中,`decToBCD`函数将一个十进制数转换为8421BCD码。它首先将十进制数的每一位存储在一个数组中,然后将每个数字的高4位设置为0x0F,表示它是8421BCD码的高位。`BCDtoDec`函数将一个8421BCD码转换为十进制数。它首先将每个数字的高4位和低4位分别乘以10,并将它们相加得到十进制数。最终,主函数调用这些函数来转换一个十进制数为8421BCD码,然后再将其转换回十进制数。