Binary coded decimal: Difference between revisions
Content added Content deleted
(Created Nim solution.) |
(Added FreeBasic) |
||
Line 498: | Line 498: | ||
99 1 bcd+ . 100 ok |
99 1 bcd+ . 100 ok |
||
</pre> |
</pre> |
||
⚫ | |||
=={{header|FreeBASIC}}== |
|||
<syntaxhighlight lang="vb">#Define setBCD(v) (CUByte((v) \ 10 Shl 4 + (v) Mod 10)) ' base 16 to base 10 |
|||
Dim n As Ubyte = setBCD(19) |
|||
Print "0x" & 19; " + 1 = "; "0x" & 19+1; " or, in packed BCD, "; |
|||
Print Using "########"; CUInt(Bin(n, 8)); |
|||
Print Using " + 1 = ########"; CUInt(Bin(n + setBCD(7), 8)) |
|||
n = setBCD(30) |
|||
Print "0x" & 30; " - 1 = "; "0x" & 30-1; " or, in packed BCD, "; |
|||
Print Using "########"; CUInt(Bin(n, 8)); |
|||
Print Using " - 1 = ########"; CUInt(Bin(n + setBCD(7), 8)) |
|||
n = setBCD(99) |
|||
Print "0x" & 99; " + 1 = "; "0x" & 99+1; " or, in packed BCD, "; |
|||
Print Using "########"; CUInt(Bin(n, 8)); |
|||
Print Using " + 1 = ########"; CUInt(Bin(n + setBCD(7), 8)) |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre>0x19 + 1 = 0x20 or, in packed BCD, 11001 + 1 = 100000 |
|||
0x30 - 1 = 0x29 or, in packed BCD, 110000 - 1 = 110111 |
|||
0x99 + 1 = 0x100 or, in packed BCD, 10011001 + 1 = 10100000</pre> |
|||
⚫ | |||
Here, we represent hexadecimal numbers using J's constant notation, and to demonstrate bcd we generate results in that representation: |
Here, we represent hexadecimal numbers using J's constant notation, and to demonstrate bcd we generate results in that representation: |
||