为什么“1010 0000”不是有效的BCD表示?

问题描述:

我在“编程Z80”一书中遇到了这个问题,这是一个没有回答的练习题。为什么“1010 0000”不是有效的BCD表示?

+0

'1010 0000'将是'A0'十六进制。还有其他问题吗? –

因为您试图用二进制数表示十进制值。你可以只用数字表示0和9

有效的BCD 4位数据块之间:

0000 - 0 
0001 - 1 
0010 - 2 
0011 - 3 
0100 - 4 
0101 - 5 
0110 - 6 
0111 - 7 
1000 - 8 
1001 - 9 

无效的BCD 4位数据块:

1010 - 10 
1011 - 11 
1100 - 12 
1101 - 13 
1110 - 14 
1111 - 15 

例子:

0101 0011 - 53 
1001 0111 - 97 
1000 1001 0100 - 894 
1010 0000 - (10)0 // We can't represent 10 in a single decimal digit 

值10至15在BCH(binary coded hexadecimal)上下文中有效。前面的无效示例会导致如下所示:

1010 0000 - A0