Bashで文字列を16進数で読み取るには?

Bashで文字列を16進数で読み取るには?

私はbashラインを持っています:

expr substr $SUPERBLOCK 64 8

これは私に返された文字列行です:

00080000

私はこれが実際にはリトルエンディアンバイトの順序で0x00080000であることを知っています。 Bashでビッグエンディアンモード(例えば0x80000)で整数変数を生成する方法はありますか?

ベストアンサー1

これを行うより良い方法があるかもしれませんが、数値を10進数に変換してから16進数に変換して手動で追加するこの解決策を思いつきました0x

printf '0x%x\n' "$((16#00080000))"

書くことができます:

printf '0x%x\n' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"

おすすめ記事