gpt4 book ai didi

linux - echo 无符号 64 位变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:29 26 4
gpt4 key购买 nike

我有以下 shell 代码:

Val1=0123456789abcdef
Val2=fedcba9876543210

Val3_dec=$((16#$Val1 ^ 16#$Val2))
Val3=`echo "obase=16; $Val3_dec" | bc`
echo $Val1
echo $Val2
echo $Val3_dec
echo $Val3

对应的输出:

0123456789abcdef
fedcba9876543210
-1
-1

不幸的是,Val3 的输出是带负号的,但我需要它是一个 64 位无符号十六进制输出。喜欢:

0123456789abcdef
fedcba9876543210
-1 (the output of Val3_dec does not matter)
ffffffffffffffff

一些想法?

最佳答案

使用 printf:

#!/bin/bash
Val1=0123456789abcdef
Val2=fedcba9876543210

Val3_dec=$((16#$Val1 ^ 16#$Val2))
Val3=`echo "obase=16; $Val3_dec" | bc`
echo $Val1
echo $Val2
printf "%d\n" $Val3_dec
printf "%x\n" $Val3

结果:

$ ./test.sh 
0123456789abcdef
fedcba9876543210
-1
ffffffffffffffff

关于linux - echo 无符号 64 位变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com