쉘에서 16 진 xor (^)를 계산하는 방법?


답변:



35

이처럼 :

echo $(( 0xA ^ 0xF ))

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

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

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

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

12

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
재미 있지만 너트를 깨는 것은 망치처럼 보입니다!
abligh

1
보다 일반적인 표현식 평가의 경우에는 유용하지만 XOR에는 적합하지 않음
Peter Cordes

5

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


와우, 그 사이트는 bc(1)괴짜의 천국입니다. :) 링크 주셔서 감사합니다.
Satō Katsura

"bc"버전은 XOR 기능이없는 것 같습니다.Runtime error (func=(main), adr=51): Function xor not defined.
slacy

@slacy logic.bc거기에서 참조 된 파일 을 얻었 습니까? 그것이 정의한 xor것입니다
Eric Renouf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.