残念ながら、bc と calc は xor をサポートしていません。
答え1
このような:
echo $(( 0xA ^ 0xF ))
あるいは、答えを 16 進数で知りたい場合は次のようにします。
printf '0x%X\n' $(( 0xA ^ 0xF ))
ちなみに、calc(1)
するxor
機能としてのサポート:
$ calc
base(16)
0xa
xor(0x22, 0x33)
0x11
答え2
任意の POSIX シェルの場合:
$ printf '%#x\n' "$((0x11 ^ 0x22))"
0x33
答え3
gdb には強力な式計算機があります:
gdb -q -ex 'print/x 0xA ^ 0xF' -ex q
シェル関数:
calc_gdb() { gdb -q -ex "print/x $*" -ex q;}
calc_gdb 0xA ^ 0xF
$1 = 0x5
答え4
bc ではそれが可能です:
echo 'xor(10,15)' | bc -l logic.bc
または16進数で:
echo 'obase=16;ibase=16; xor(AA,FF)' | bc -l logic.bc
使用方法ロジックファイルはここから。
wget http://phodd.net/gnu-bc/code/logic.bc
取得するためにただ実行してください。