Você está executando od
em uma máquina little-endian .
>>> 0x1f1b
7963
Esta questão está relacionada com a resposta da enzotib à pergunta: Como eu poderia usar o Bash para encontrar 2 bytes em um arquivo binário, aumentar seus valores e substituir?
Isso converte os dois bytes em seu valor hexadecimal:
$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002
Mas agora, isso deve me dar o valor decimal:
echo -n $'\x1b\x1f' | od -tu2
0000000 7963
0000002
Mas se eu converter o valor hexadecimal em decimal, deve ser
$ printf "%d" 0x1b1f
6943
Por que isso? Estou usando od
errado para saída decimal?
Você está executando od
em uma máquina little-endian .
>>> 0x1f1b
7963