Shell

如何從shell計算十六進制異或(^)?

  • March 9, 2017

不幸的是 bc 和 calc 不支持異或。

像這樣:

echo $(( 0xA ^ 0xF ))

或者,如果您想要十六進制的答案:

printf '0x%X\n' $(( 0xA ^ 0xF ))

附帶說明一下,calc(1) 確實支持xor作為一項功能:

$ calc
base(16)
   0xa
xor(0x22, 0x33)
   0x11

使用任何 POSIX shell:

$ printf '%#x\n' "$((0x11 ^ 0x22))"
0x33

引用自:https://unix.stackexchange.com/questions/292344