BCD计算器问题
BCD Calculator issue
我正在将十六进制0xE0
转换为BCD。当我这样做的时候,我得到的是64分。我知道这是完全错误的,也许是我的c++代码中的问题,但64听起来不正确。什么好主意吗?0xE0
是特例吗?(0xE0
为十进制的224)
下面是我的部分代码:
unsigned char Hex2BCD(unsigned char param)
{ unsigned char lo;
unsigned char hi;
unsigned char val;
unsigned char buf[10];
hi = param/ 10;
lo = param- (hi * 10);
val= (hi << 4) + lo;
return val;
}
我的想法是,你的代码转换为BCD是错误的。它没有做它应该做的事情,因此你正在观察错误的结果。
除了这个笑话:0xe0如果存储在signed char中是一个负数。如果你在计算结果时没有特别注意你使用的临时变量的符号,这可能会给你带来麻烦。
edit:现在您发布了一些代码,很明显,虽然您为lo
的第一个数字计算正确的值,但您需要另一个步骤才能将正确的值输入hi
。
使用0xe0
作为输入,您实际计算的是(22<<4) + 4 = 356 = 0x164
而不是(2<<8)+(2<<4)+4 = 548 = 0x224
。
相关文章:
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 桌面计算器出现问题.C++程序设计语言
- 如果 GPA 计算器的语句问题
- 我的C++计算器似乎出了什么问题?
- 创建一个简单的计算器,添加时遇到问题
- 六计算器问题.有人可以再次检查我的代码吗?
- DEV简单的C GPA计算器问题
- C++序列计算器x_{n+1} = f(x_n),数学函数有问题
- 具有"else if"方法问题 C++ 的基本计算器
- 简单平均计算器的问题
- 计算贷款计算器程序的总利息的问题(C++)
- RPN计算器(将操作数应用到堆栈时出现问题)
- 简单的计算器程序出了什么问题
- C++新手 - 基本计算器问题
- 后缀表示法计算器 (RPN) 问题C++
- 我的计算器有问题
- C++BMI计算器问题
- C++计算器程序.问题
- C++成绩计算器问题
- Qt计算器的问题- c++