是否可以使用bash腳本將十六進制字符串轉換爲uint64_t(或unsigned long long int)?這個號碼是FFFFFFFF3D4331BC
?用bash將hex轉換爲uint64_t
看起來bc
命令不適用於未初始化的數字?
是否可以使用bash腳本將十六進制字符串轉換爲uint64_t(或unsigned long long int)?這個號碼是FFFFFFFF3D4331BC
?用bash將hex轉換爲uint64_t
看起來bc
命令不適用於未初始化的數字?
純bash的答案:
$ printf "%u\n" "0xFFFFFFFF3D4331BC"
18446744070442398140
echo "main(){unsigned long long int i = 0xFFFFFFFF3D4331BC; printf(\"%llu\\n\", i);}" | gcc -x c - && ./a.out
我只是C.
編輯做到了: 答案
18446744070442398140
Perl的答案:
perl -Mbigint -le 'print hex FFFFFFFF3D4331BC'
輸出:
18446744070442398140
猛砸答案與bc
:
$ echo "ibase=16; FFFFFFFF3D4331BC" | bc
18446744070442398140
您也可以將其存儲在一個變量是這樣的:
$ n=FFFFFFFF3D4331BC
$ echo "ibase=16; $n" | bc
18446744070442398140
是'18446744070442398140'正確答案? – choroba
bash沒有任何叫做'uint64_t'的東西。你的意思是你想要將十六進制字符串轉換爲十進制字符串嗎? –