Binary coded decimal: Difference between revisions
Content added Content deleted
Puppydrum64 (talk | contribs) No edit summary |
(J) |
||
Line 82: | Line 82: | ||
29 |
29 |
||
0100</pre> |
0100</pre> |
||
=={{header|J}}== |
|||
Here, we represent hexadecimal numbers using J's constant notation, and to demonstrate bcd we generate results in that representation: |
|||
<lang J> bcd=: &.((10 #. 16 #.inv ". ::]) :. ('16b',16 hfd@#. 10 #.inv ])) |
|||
16b19 +bcd 1 |
|||
16b20 |
|||
16b30 -bcd 1 |
|||
16b29 |
|||
16b99 +bcd 1 |
|||
16b100 |
|||
(16b99 +bcd 1) -bcd 1 |
|||
16b99</lang> |
|||
=={{header|Z80 Assembly}}== |
=={{header|Z80 Assembly}}== |
||
The <code>DAA</code> function will convert an 8-bit hexadecimal value to BCD after an addition or subtraction is performed. The algorithm used is actually quite complex, but the Z80's dedicated hardware for it makes it all happen in 4 clock cycles, tied with the fastest instructions the CPU can perform. |
The <code>DAA</code> function will convert an 8-bit hexadecimal value to BCD after an addition or subtraction is performed. The algorithm used is actually quite complex, but the Z80's dedicated hardware for it makes it all happen in 4 clock cycles, tied with the fastest instructions the CPU can perform. |