Recently, I read some hex data with 16 length, like 0x1000 0000 0000 0000
, but print out some strange thing when print 0xffff ffff ffff ffff
awk '{printf("0x\n", 0x1000000000000000)}' output `0x1000000000000000` ok.
But, instead with
16 f awk '{printf("0x\n", 0xffffffffffffffff)}'
, output 0
15 f awk '{printf("0x\n", 0xfffffffffffffff)}'
, output 1000000000000000
(14 0)
15 f awk '{printf("0x\n", 0xfffffffffffffff0)}'
, output 0
14 f awk '{printf("0x\n", 0xffffffffffffff)}'
, output 100000000000000
(13 0)
14 f awk '{printf("0x\n", 0xffffffffffffff0)}'
, output 100000000000000
(14 0)
14 f awk '{printf("0x\n", 0xffffffffffffff00)}'
, output 0
13 f awk '{printf("0x\n", 0xfffffffffffff)}'
, output fffffffffffff
(13f)
13 f awk '{printf("0x\n", 0xfffffffffffff0)}'
, output fffffffffffff0
(13f)
13 f awk '{printf("0x\n", 0xfffffffffffff00)}'
, output fffffffffffff00
(13f)
13 f awk '{printf("0x\n", 0xfffffffffffff000)}'
, output fffffffffffff000
(13f)
so 13f is ok, how to print 16f?