bash スクリプトを使用して 16 進文字列を uint64_t (または unsigned long long int) に変換することは可能ですか? 番号はFFFFFFFF3D4331BC
?
bc
署名されていない数字ではコマンドが機能しないようですか?
bash スクリプトを使用して 16 進文字列を uint64_t (または unsigned long long int) に変換することは可能ですか? 番号はFFFFFFFF3D4331BC
?
bc
署名されていない数字ではコマンドが機能しないようですか?
echo "main(){unsigned long long int i = 0xFFFFFFFF3D4331BC; printf(\"%llu\\n\", i);}" | gcc -x c - && ./a.out
私はCでそれをやっただけです。
編集:答え
18446744070442398140
で答えをバッシュbc
:
$ echo "ibase=16; FFFFFFFF3D4331BC" | bc
18446744070442398140
次のように変数に格納することもできます。
$ n=FFFFFFFF3D4331BC
$ echo "ibase=16; $n" | bc
18446744070442398140
パールの答え:
perl -Mbigint -le 'print hex FFFFFFFF3D4331BC'
出力:
18446744070442398140