Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
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

In reply to Re: Binary Coded Decimal by Marshall
in thread Binary Coded Decimal by adrce55

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (4)
As of 2024-04-19 04:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found