22得票4回答
Z80的DAA指令

非常抱歉这个问题似乎很小,但我似乎找不到答案 - 我正要在我的Z80模拟器中实现DAA指令,并且我注意到在Zilog手册中,它旨在调整累加器进行二进制编码的十进制算术运算。它说该指令旨在在加法或减法指令之后立即运行。 我的问题是: 如果在其他指令之后运行该指令会发生什么? 它如何知道先前...

12得票4回答
Python,如何解码二进制编码的十进制数(BCD)

该二进制字段的描述如下: 使用压缩BCD编码表示的呼叫者号码,剩余位填充为“0xF”。 我尝试使用结构体格式'16c'进行打印,得到的结果是:('3', '\x00', '\x02', '\x05', '\x15', '\x13', 'G', 'O', '\xff', '\xff'...

12得票10回答
汇编语言:为什么BCD存在?

我知道如果你不懂二进制,BCD 类型可能更加直观。 但我不知道为什么要使用这种编码方式,因为当表示大于 9 时,它会浪费 4 比特的空间。 此外,我认为 x86 只直接支持加减运算(可以通过 FPU 进行转换)。 这可能是来自旧机器或其他体系结构的限制吗?

11得票3回答
如何将BCD转换为十进制?

我怎样将二进制编码的十进制数转换为其对应的十进制数字,而不是它的值?我想要的是转换显示方式,而非它的值。例如,我想把0x11转换为十进制数11(而不是17),把0x20转换为20(而不是32)。unsigned char day = 0x11; unsigned char month = 0x...

9得票2回答
将BCD打包到DPD:如何改进这个amd64汇编例程?

我正在编写一个程序,用于在BCD(每个十进制数字4位)和Densely Packed Decimal (DPD)(每3个十进制数字10位)之间进行转换。有关DPD的更多文档(包括建议使用查找表的软件)可在Mike Cowlishaw的网站上找到。 这个例程只需要使用它所用寄存器的低16位...

9得票5回答
二进制编码十进制(BCD)转十六进制的转换

请问有人能够解释一下如何将BCD转换为十六进制吗?例如,我如何将98(BCD)转换为十六进制。 谢谢。

8得票2回答
任意大数字的BCD数学库?

我正在寻找一个替代库来替换Delphi Data.FmtBcd库,因为我碰到了它的极限,例如它能表示的最多小数位数以及程序终止时会出现EBcdOverflowException异常。好奇的话,我正在计算算术序列成员,并且需要处理非常大的数字——十万级别的数字并不罕见。同时也要在合理的时间内得到...

7得票10回答
无符号整数转BCD码?

我知道你可以使用这个表格将十进制转换为BCD: 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 是否有一个公式可以用于此转换,或者只能使用表...

7得票2回答
ASCII调整指令和十进制调整指令是如何工作的?

我一直在努力理解x86汇编语言中的ASCII调整指令。 我在互联网上看到了很多不同的信息,但我想这只是不同形式的相同内容,仍然让我难以理解。 有人可以解释一下为什么在AAA,AAS的伪代码中,我们需要向AL低位半字节中添加、减去6吗? 还有人可以解释Intel指令集手册中的AAM,AAD...