น่าเสียดายที่ bc และ calc ไม่สนับสนุน xor
น่าเสียดายที่ bc และ calc ไม่สนับสนุน xor
คำตอบ:
แบบนี้:
echo $(( 0xA ^ 0xF ))
หรือถ้าคุณต้องการคำตอบเป็นเลขฐานสิบหก:
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
หรือเป็น hex:
echo 'obase=16;ibase=16; xor(AA,FF)' | bc -l logic.bc
เพียงทำwget http://phodd.net/gnu-bc/code/logic.bc
เพื่อให้ได้
bc(1)
สวรรค์ของคนเกินบรรยาย :) ขอบคุณสำหรับลิงค์
Runtime error (func=(main), adr=51): Function xor not defined.
logic.bc
ไฟล์อ้างอิงที่นั่นหรือไม่ นั่นคือสิ่งที่กำหนดxor
ไว้
%#x
ทำงานใน C ด้วยเช่นกัน