Perl floating point representation will accurately represent integers with upto 52 or 53 bits as tye points out here (tye)Re: 64 bit Integer anyone?. Depending on exactly what operations you need to perform with the numbers, this may save you the performance hit of Math::BigInt.

Alternatively, depending upon how the 48-bits words of the machine code are split up, it might make sense to represent them as 1x16 bit part and 1x32-bit or possibly 3x16-bits. For example, it might be that the first 16-bits define the opcode and address modes and the other 32 bits are the addresses, in which case it might be easier to manipulate these as seperate integers and only combine them when you come to convert them to binary.

The convertion to binary could be done using pack

# 1x16-bit + 1x32-bit big-endian to 48-word my $word48 = pack 'nN', $opcode, $operands; # 3x16-bit little-endian to 48-bit word my $word48 = pack 'vvv', $op, $src, $dst;

Examine what is said, not who speaks.
1) When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.
2) The only way of discovering the limits of the possible is to venture a little way past them into the impossible
3) Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke.

In reply to Re: Parse::RecDescent for 48bits by BrowserUk
in thread Parse::RecDescent for 48bits by bear_hwn

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.