10进制转bcd码c语言
时间: 2023-10-31 20:06:37 浏览: 35
以下是一个将十进制数转换为BCD码的C语言函数:
```c
void dec2bcd(unsigned char *bcd, unsigned int num) {
unsigned char i = 0;
unsigned char buf[5] = {0};
while(num) {
buf[i++] = num % 10;
num /= 10;
}
while(i--) {
*bcd++ = buf[i];
}
}
```
在这个函数中,我们将输入的十进制数 `num` 逐位取余并存入 `buf` 数组中,然后将 `buf` 数组逆序存入输出的BCD码 `bcd` 中。下面是一个完整的例子:
```c
#include <stdio.h>
void dec2bcd(unsigned char *bcd, unsigned int num) {
unsigned char i = 0;
unsigned char buf[5] = {0};
while(num) {
buf[i++] = num % 10;
num /= 10;
}
while(i--) {
*bcd++ = buf[i];
}
}
int main() {
unsigned int num = 12345;
unsigned char bcd[5] = {0};
dec2bcd(bcd, num);
printf("BCD码为: ");
for(int i=0; i<5; i++) {
printf("%d", bcd[i]);
}
printf("\n");
return 0;
}
```
输出结果:
```
BCD码为: 00001 00100 00101
```