#!/usr/bin/perl use strict; use warnings; use Data::Hexdumper qw(hexdump); use integer; my $Rm = '0xAAAAAAAA'; my $Rb = hex $Rm; my $Rc = pack 'l', $Rb; my $Rd = unpack 'l', $Rc; my $Re = $Rd >> 31; my $Rx = pack 'l', $Re; print 'Rm: ', hexdump( $Rm, { suppress_warnings => 1 } ); print 'Rb: ', hexdump( $Rb, { suppress_warnings => 1 } ); print 'Rc: ', hexdump( $Rc, { suppress_warnings => 1 } ); print 'Rd: ', hexdump( $Rd, { suppress_warnings => 1 } ); print 'Re: ', hexdump( $Re, { suppress_warnings => 1 } ); print 'Rx: ', hexdump( $Rx, { suppress_warnings => 1 } ); printf "Rb = 0x%x\t Re = 0x%x\n",$Rb, $Re; #### Rm: 0x0000 : 30 78 41 41 41 41 41 41 41 41 00 00 00 00 00 00 : 0xAAAAAAAA...... Rb: 0x0000 : 32 38 36 33 33 31 31 35 33 30 00 00 00 00 00 00 : 2863311530...... Rc: 0x0000 : AA AA AA AA 00 00 00 00 00 00 00 00 00 00 00 00 : ................ Rd: 0x0000 : 2D 31 34 33 31 36 35 35 37 36 36 00 00 00 00 00 : -1431655766..... Re: 0x0000 : 2D 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : -1.............. Rx: 0x0000 : FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 : ................ Rb = 0xaaaaaaaa Re = 0xffffffffffffffff