Tag: bcd

如何转换十进制BCD?

我能够将BCD转换为十进制,例如我可以将0x11转换为11而不是十进制的17。 这是我使用的代码。 unsigned char hex = 0x11; unsigned char backtohex ; int dec = ((hex & 0xF0) >> 4) * 10 + (hex & 0x0F); 现在我想将dec转换回BCD表示。 我想将11转换回0x11而不是0x0B。 我有点困惑,如何回去。 谢谢!

将真正的大数字从二进制转换为十进制并打印出来

我知道如何将二进制转换为十进制。 我知道至少2种方法:桌子和电源;-) 我想将二进制转换为十进制并打印此十进制。 而且,我对这个“十进制”不感兴趣; 我想要打印它。 但是,正如我上面所写,我只知道将二进制转换为十进制的两种方法,并且它们都需要添加。 所以,我在二进制中计算1或0的某个值,并将其添加到记忆值。 这是一个很薄的地方。 我有一个非常大的数字(1和64个零)。 转换时我需要在某些“变量”中放置一些中间结果。 在C中,我有一个`int’类型,它只有4个字节,不超过10 ^ 11。 因此,在从二进制转换为十进制时,我没有足够的内存来存储中间结果。 正如我上面写的那样,我对这个十进制不感兴趣,我只想打印结果。 但是,我没有看到任何其他方法来解决它;-(是否有任何解决方案从二进制“只打印”? 或者,也许,我应该使用类似BCD(二进制编码的十进制)的东西进行中间表示? 我真的不想使用这个,因为它不是那么跨平台(英特尔的处理器有内置function,但对于其他我需要编写自己的实现)。 我很高兴听到你的想法。 谢谢你的耐心等待。 语言:C

将整数从(纯)二进制转换为BCD

我现在愚蠢地解决这个问题…… 我得到一个BCD号码(每个数字都是一个自己的4Bit表示) 例如,我想要的: 输入:202(hex)== 514(十二月) 输出:BCD 0x415 输入:0x202 位表示:0010 0000 0010 = 514 我试过了什么: unsigned int uiValue = 0x202; unsigned int uiResult = 0; unsigned int uiMultiplier = 1; unsigned int uiDigit = 0; // get the dec bcd value while ( uiValue > 0 ) { uiDigit= uiValue & 0x0F; uiValue >>= 4; uiResult […]