使用bash将十六进制转换为uint64\t

使用bash将十六进制转换为uint64\t,bash,Bash,是否可以使用bash脚本将十六进制字符串转换为uint64_t(或无符号长整型)?号码是FFFFFFFFFF3D4331BC bc命令似乎无法处理非单数 echo "main(){unsigned long long int i = 0xFFFFFFFF3D4331BC; printf(\"%llu\\n\", i);}" | gcc -x c - && ./a.out 我只是用C做的 编辑: 答复 我只是用C做的 编辑: 答复 Perl回答: perl -Mbigint -l

是否可以使用bash脚本将十六进制字符串转换为uint64_t(或无符号长整型)?号码是
FFFFFFFFFF3D4331BC

bc
命令似乎无法处理非单数

echo "main(){unsigned long long int i = 0xFFFFFFFF3D4331BC; printf(\"%llu\\n\", i);}" | gcc -x c - && ./a.out
我只是用C做的

编辑: 答复

我只是用C做的

编辑: 答复

Perl回答:

perl -Mbigint -le 'print hex FFFFFFFF3D4331BC'
输出:

18446744070442398140
Perl回答:

perl -Mbigint -le 'print hex FFFFFFFF3D4331BC'
输出:

18446744070442398140

bc
回答问题:

$ echo "ibase=16; FFFFFFFF3D4331BC" | bc
18446744070442398140
也可以将其存储在如下变量中:

$ n=FFFFFFFF3D4331BC
$ echo "ibase=16; $n" | bc
18446744070442398140

bc
回答问题:

$ echo "ibase=16; FFFFFFFF3D4331BC" | bc
18446744070442398140
也可以将其存储在如下变量中:

$ n=FFFFFFFF3D4331BC
$ echo "ibase=16; $n" | bc
18446744070442398140
纯bash回答:

$ printf "%u\n" "0xFFFFFFFF3D4331BC"
18446744070442398140
纯bash回答:

$ printf "%u\n" "0xFFFFFFFF3D4331BC"
18446744070442398140

18446744070442398140
是正确答案吗?bash没有任何名为
uint64\t
。您的意思是要将十六进制字符串转换为十进制字符串吗?
18446744070442398140
是正确答案吗?bash没有任何名为
uint64\t
。您的意思是要将十六进制字符串转换为十进制字符串吗?