in reply to Parse::RecDescent for 48bits
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;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Parse::RecDescent for 48bits
by bear_hwn (Acolyte) on Apr 07, 2003 at 18:55 UTC | |
by BrowserUk (Patriarch) on Apr 07, 2003 at 20:52 UTC | |
by Anonymous Monk on Apr 07, 2003 at 21:03 UTC | |
by bear_hwn (Acolyte) on Apr 09, 2003 at 16:25 UTC | |
by bear_hwn (Acolyte) on Apr 07, 2003 at 18:57 UTC | |
by bear_hwn (Acolyte) on Apr 07, 2003 at 19:05 UTC |