C++ 十进制转BCD
时间: 2024-09-08 19:04:46 浏览: 148
在C++中,将十进制转换为二进制码(Binary Coded Decimal, BCD)通常是为了存储或传输精确的数字,尤其是那些包含小数部分的十进制数。以下是手动实现十进制转BCD的一种简单方法:
```cpp
#include <iostream>
#include <bitset>
// 定义每个位的二进制值
const int BCD_BASE = 10; // BCD基数
// 十进制转BCD函数
std::vector<int> decimalToBCD(int decimal) {
std::vector<int> bcd(4, 0); // BCD通常用4位表示,最高位通常是奇偶校验位
for (int i = 0; i <= 3 && decimal > 0; ++i) {
// 取除以BCD_BASE得到每一位的值,注意商和余数的位置交换
int digit = decimal % BCD_BASE;
bcd[i] = digit;
decimal /= BCD_BASE;
}
return bcd;
}
int main() {
int decimal_number = 123.45;
std::vector<int> bcd_result = decimalToBCD(decimal_number);
for (int digit : bcd_result) {
std::cout << std::bitset<8>(digit) << " "; // 显示每位的二进制形式
}
return 0;
}
```
在这个例子中,`decimalToBCD`函数会将输入的十进制数分解成四位BCD编码,并返回一个整数向量。注意,实际应用中你可能需要处理小数点后的部分,以及可能的奇偶校验。
阅读全文