如何在shell中比较十六进制数和十六进制数?
问问题
13890 次
3 回答
9
至少bash
直接支持十六进制整数,前提是它们带有前缀0x
:
$ [[ 0xdead -lt 0xcafe ]] && echo yes || echo no
no
$ [[ 0xdead -gt 0xcafe ]] && echo yes || echo no
yes
您只需正常使用比较运算符...
于 2012-11-21T22:32:22.440 回答
3
您可以使用将十六进制数字转换为小数printf
,然后您可以比较数值,例如:
x="0xdead"
y="0xcafe"
x_num=$(printf "%d" "$x")
y_num=$(printf "%d" "$y")
if [ $x_num -gt $y_num ]; then
echo "x is my value"
else
echo "x is not my value"
fi
于 2019-04-04T14:14:10.280 回答
1
怎么样
(( "$answer" == 0x42 ))
echo $?
answer=0xDEADCAFE
(( "$answer" == 0xDEADCAFE ))
echo $?
于 2012-11-21T19:46:56.607 回答