Kabuktan onaltılık xor (^) nasıl hesaplanır?


Yanıtlar:



35

Bunun gibi:

echo $(( 0xA ^ 0xF ))

Veya cevabı onaltılı olarak istiyorsanız:

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

Bir yan not, calc(1) does destek xorbir fonksiyonu olarak:

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

12

gdb güçlü ifade hesaplayıcıya sahiptir:

gdb -q -ex 'print/x 0xA ^ 0xF' -ex q

Bir kabuk işlevi:

calc_gdb() { gdb -q -ex "print/x $*" -ex q;}
calc_gdb 0xA ^ 0xF

$1 = 0x5

4
Eğlenceli, ama bir ceviz kırmak için bir balyoz gibi görünüyor!
abligh

1
İfadeleri değerlendirmenin daha genel durumu için kullanışlıdır, ancak XOR için kullanılamaz
Peter Cordes

5

Bunu bc'de yapmak mümkündür:

echo 'xor(10,15)' | bc -l logic.bc

Veya altıgen şeklinde:

echo 'obase=16;ibase=16; xor(AA,FF)' | bc -l logic.bc

Buradan mantık dosyasını kullanarak .

Sadece wget http://phodd.net/gnu-bc/code/logic.bcalmak için yap.


Vay canına, bu site bc(1)ineklerin cenneti. :) Bağlantı için teşekkürler.
Satō Katsura

Benim "bc" versiyonu XOR fonksiyonuna sahip gibi görünmüyor ve şöyle diyor:Runtime error (func=(main), adr=51): Function xor not defined.
slacy

@slacy logic.bcorada başvurulan dosyayı aldınız mı? Yani tanımlayan olduğunu xorgörünüyor
Eric Renouf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.