쉘에서 16진수 xor(^)를 계산하는 방법은 무엇입니까?

쉘에서 16진수 xor(^)를 계산하는 방법은 무엇입니까?

불행하게도 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얻으려면 그냥 하세요 .

관련 정보