c++实现bcd码转十进制及十进制转bcd码
时间: 2023-09-03 12:13:22 浏览: 128
BCD码是二进制编码的十进制表示,每个十进制数用四位二进制数来表示。因此,BCD码转换为十进制数就是将每个四位二进制数转换为一个十进制数,然后将所有十进制数相加。十进制数转换为BCD码就是将每个十进制数转换为四位二进制数,然后将所有二进制数连接起来。
以下是C++中实现BCD码转十进制及十进制转BCD码的示例代码:
```
#include <iostream>
#include <bitset>
using namespace std;
// BCD码转十进制
int bcdToDecimal(int bcd) {
int decimal = 0;
int factor = 1;
while (bcd != 0) {
int digit = bcd % 10;
decimal += digit * factor;
factor *= 10;
bcd /= 16;
}
return decimal;
}
// 十进制转BCD码
int decimalToBcd(int decimal) {
int bcd = 0;
int factor = 1;
while (decimal != 0) {
int digit = decimal % 10;
bcd += digit * factor;
factor *= 16;
decimal /= 10;
}
return bcd;
}
int main() {
// 测试BCD码转十进制
int bcd = 0x1234;
int decimal = bcdToDecimal(bcd);
cout << "BCD码 " << bitset<16>(bcd) << " 转换为十进制数是:" << decimal << endl;
// 测试十进制转BCD码
int num = 1234;
int bcd2 = decimalToBcd(num);
cout << "十进制数 " << num << " 转换为BCD码是:" << bitset<16>(bcd2) << endl;
return 0;
}
```
请注意,上述代码仅适用于4位BCD码和4位十进制数。如果要处理不同长度的数字,需要进行相应的修改。
阅读全文