쉘에서 16 진 xor (^)를 계산하는 방법? calc는 xor를 지원하지 않습니다.

불행히도 bc와 calc는 xor를 지원하지 않습니다.



답변

POSIX 쉘에서 :

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


답변

이처럼 :

echo $(( 0xA ^ 0xF ))

또는 16 진수로 답을 원한다면 :

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

보조 노트에, calc(1) 수행 지원 xor기능으로는 :

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


답변

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


답변

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그것을 얻을 수 있습니다.


답변