Hexadecimal number > 0xffffffff non-portable at test.pl line 9
####
$ perl -V:ivsize
ivsize='8';
$ perl -wle'print 1152921504606846975'
1152921504606846975
$ perl -wle'printf "%x\n", 1152921504606846975'
fffffffffffffff
##
##
$ gperl32 -V:ivsize
ivsize='4';
$ gperl32 -wle'print 1152921504606846975'
1.15292150460685e+18
$ gperl32 -wle'printf "%x\n", 1152921504606846975'
ffffffff
##
##
use 5.18.2;
use warnings;
$|++;
srand 54321;
say "One rand";
for (1 .. 20) {
my $n = int rand 1152921504606846975;
printf "\r%064b %016X\n", $n, $n;
}
say "Two rands";
for (1 .. 20) {
my ($n1, $n2) = map { int rand 0xffff_ffff } 0, 1;
my $n = unpack "Q>", pack "L>L>", $n1, $n2;
printf "\r%064b %016X\n", $n, $n;
}
##
##
One rand
0000000001011110010111000001101110010101000100000000111111111111 005E5C1B95100FFF
0000110011101111101010000101100110100110001101110111111111111111 0CEFA859A6377FFF
0000001100101010000101011010101110100010101000100010111111111111 032A15ABA2A22FFF
0000011011010000111100010101011000110110001011110001111111111111 06D0F156362F1FFF
0000110100101100101001111001010011101000110100010100111111111111 0D2CA794E8D14FFF
0000010111010101110101111110100011101110111111111011111111111111 05D5D7E8EEFFBFFF
0000000100000101000100010010110010001001011001010110111111111111 0105112C89656FFF
0000111111000110001001000000101011100010110100010101111111111111 0FC6240AE2D15FFF
0000010010010000101010101010111100101111011001101000111111111111 0490AAAF2F668FFF
0000110010001101100001001001101000010100000010111111111111111111 0C8D849A140BFFFF
0000110100001100110001101010110101010001000111001010111111111111 0D0CC6AD511CAFFF
0000001010011101011001011011110110001111010101111001111111111111 029D65BD8F579FFF
0000000000110000111000100000011001000010000011111100111111111111 0030E206420FCFFF
0000010100111111100010001111100000010101100111000011111111111111 053F88F8159C3FFF
0000010010011010111000001001011010010101000001111110111111111111 049AE0969507EFFF
0000010011101110110111110111001111010110000000011101111111111111 04EEDF73D601DFFF
0000011011011111100000001001001001001110000011010000111111111111 06DF80924E0D0FFF
0000011101111101110010000101010110110111111100000111111111111111 077DC855B7F07FFF
0000111011000101111100000111011101100100011001110010111111111111 0EC5F07764672FFF
0000110101111000101000011100101010110101000100000001111111111111 0D78A1CAB5101FFF
Two rands
0110111011001000100010011001000010011000011110001101000001011011 6EC889909878D05B
1000011111110001011001111000011100001110111101111100100010001100 87F167870EF7C88C
1011000100011111101001110011000101100011010110101001110101110011 B11FA731635A9D73
1110001111001110010011000011100101001011111110010101000101001010 E3CE4C394BF9514A
1110001001010010001001100101001001010011000011001111000101011100 E2522652530CF15C
1111001101101100101000011110101010011011111101000110000011101110 F36CA1EA9BF460EE
0011110101110110001011001101001110011110001101000111010011011010 3D762CD39E3474DA
1110010101011100001011111011000101010100110100110110010100001010 E55C2FB154D3650A
0001000100010110101111100011110000100000111001010100000101000011 1116BE3C20E54143
1001010000111100010000111000111010100100101100111001100011011000 943C438EA4B398D8
1101101010011010011001010001001100110100111010100111000101000001 DA9A651334EA7141
0101010111110100011011011110000100101100011001110000110110100100 55F46DE12C670DA4
0101011101011010100111010111001010011010111011110111100111010110 575A9D729AEF79D6
1110111111111001000000000001111001110000011001000101010101100110 EFF9001E70645566
0111010100101110110101001101001101110110111101111000111110100000 752ED4D376F78FA0
1010110111001100010000101100000111011001001100111011001110110010 ADCC42C1D933B3B2
0110010100000111000100110010110101100110100011111001110001011110 6507132D668F9C5E
1000010010001000100101101000000010100011000000111111100011010100 84889680A303F8D4
1001011101011111101000010100010000010010111010111000100010110010 975FA14412EB88B2
1001001001001110111101001100000001101010000011110110101100110110 924EF4C06A0F6B36