echo 无符号 64 位变量
echo unsigned 64 bit variable
我有以下 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
我有以下 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