There's more than one way to do things PerlMonks

Re: Binary Coded Decimal

by Marshall (Abbot)
 on Sep 18, 2012 at 07:00 UTC ( #994205=note: print w/replies, xml ) Need Help??

in reply to Binary Coded Decimal

BCD, Binary Coded Decimal is a system where each 4 binary bits represent a decimal digit. The hexadecimal digits A-F are not used in this representation.

This format is a bit odd nowadays (more normal would be ASCII decimal which takes 2 8 bit bytes instead of 2 4 bit nibbles, but that extra space is usually not of consequence). Anyway this is how to calculate the "digits". The integer "div" or modulo operation is only one machine instruction and the integer multiply is also only one machine instruction. I don't know how good Perl is at this. See Perl pack() and unpack() for how to cram these into one 8 bit value.

```#!usr/bin/perl -w
use strict;

my @tests = (2,11,23,89,99);

foreach my \$num (@tests)
{
my \$units = \$num % 10; #modulo is the remainder
my \$tens = (\$num - \$units)/10;
printf "decimal=%02d BCD=%04b %04b\n", \$num, \$tens, \$units;
}

__END__
decimal=02 BCD=0000 0010
decimal=11 BCD=0001 0001
decimal=23 BCD=0010 0011
decimal=89 BCD=1000 1001
decimal=99 BCD=1001 1001

Create A New User
Node Status?
node history
Node Type: note [id://994205]
help
Chatterbox?
 [mz2255]: I'm trying to post a question to "seekers of perl wisdom" but always getting a permission denied when I want to submit. There are no links in my post... [ambrus]: again? someone complained about this just a few days ago (although eventually they could post) [choroba]: Can you post the question in mz2255's scratchpad? [ambrus]: Corion, if you're here, can you check the spam filter logs to see what's triggering this time? [ambrus]: Petroza had trouble posting yesterday, but has posted Issues Fetching URL with a variable token since. [mz2255]: Yes, just edited the scratchpad. Not sure if I'm doing something wrong, it's my first time.

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (9)
As of 2017-10-19 15:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My fridge is mostly full of:

Results (255 votes). Check out past polls.

Notices?