Minulla on tuleva koe, jossa voin käyttää yksinkertaista laskinta. Joissakin esimerkkikysymyksissä he pyytävät meitä XOR: lle kaksi arvoa (AES-pyöreälle näppäimelle) ja tiedän kuinka kirjoittaa se käsin, mutta onko olemassa muuta nopeampaa tapaa, koska tentti on tietysti ajoitettu.
vastaus
Jos olet onnekas, yksinkertaisen laskimen määritelmä voi sisältää kaikki ei-graafiset laskimet. Tällöin voit käyttää Casio FX-115ES Plus -laitetta, joka sisältää heksadesimaalisen ja oktaalisen perustilan sekä XOR-operaattorin. Se voi toimia enintään 32-bittisten oktettiryhmien kanssa.
Jos et ole niin onnekas, XOR-taulukko on paras ystäväsi. Riippuen siitä, kuinka monta laskutusta sinun on suoritettava, voi hyvinkin olla nopeampaa luoda yksi naarmuarkille kokeen aikana. Voit jopa sallia tuoda yhden mukanasi.
Minulla oli vaatimus, että XOR-taulukko suorittaa nopeat laskelmat painetulle koodikirjalle salauksellisesti vahvaa viestintää varten julkisella puhekanavalla. Se oli myös tehtävä nopeasti ilman tietokonetta tai mitään elektronista laitetta, ja sen oli mahtuttava pieneen 4×6 -arkkiin salaustekstin alla olevaan tilaan.
Keksin useita tapoja tiivistää ja käytä sitä edelleen. Jos olet älykäs ja kekseliäs, tiivistettyjen versioiden luominen voi antaa sinulle mahdollisuuden suorittaa nopeasti useita XOR-laskelmia. Heksadesimaali XOR-taulukossa on rekursiivinen kuvio, jota voidaan hyödyntää, yllä oleva taulukko on värikoodattu osoittamaan tätä mallia, joka ulottuu alas yksittäisiin merkkeihin. Tässä ovat tiivistetyt taulukot:
Vaikka yllä oleva taulukko vie vähemmän tilaa, siinä on sama määrä merkkejä, joten sen luominen vie suunnilleen saman ajan. Oikeiden merkkien valitseminen edellyttää yksinkertaista sääntöä.
Seuraava taso vie nyt sekä puolet edellisen että puolet merkistä. Sääntö on monimutkaisempi, mutta muutaman minuutin harjoittelun ansiosta käyttö on melkein yhtä nopeaa kuin koko pöydän. Jopa sääntöä voidaan yksinkertaistaa XOR: lla, tulos on oikea, jos sääntövalintojen XOR on 1.
Viimeinen taso on jälleen puolet välilyönnistä ja puolet merkeistä (melkein) kuin edellinen, mutta vaatii lisäsäännön työn suorittamiseksi. Jos muistat tämän taulukon rekursiivisen rakenteen ja perusasettelun, voit luoda sen uudelleen alle minuutissa kynällä ja paperilla.
Aloita sisemmän sarakkeen otsikosta, napauta ensin; 0 1 2 3 4 5 6 7
Lisää sitten toinen napata, joka on ensimmäinen napata + 8; 8 9 ABCDEF
Ulkopylvään otsikko on sisempi sarakkeen otsikko, jossa puolikkaat on käännetty
Sisärivin otsikko on sisemmän kolonnin otsikon ensimmäinen puolisko
Ulkopuolinen otsikko on ulomman kolonnin ensimmäinen puolisko header
Sitten täytät taulukon rekursiivisella rakenteella, joka on rakennettu sisemmän sarakkeen otsikosta.
Kaksinkertaisen pakatun taulukon luominen jättää ulkoiset otsikot pois, mutta käyttää koko rivin otsikkoa.
Yksi esimerkki kolmoistaulukossa:
25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Koska 2 on ensimmäinen napata ja B on toinen, käytämme toisen napin [19]
5 X 6 = [5d] x [] 6e] (1 1 1) = 3
Koska 5 on ensimmäinen napautus ja 6 on ensimmäinen, käytämme [3b]: n ensimmäistä nappia
Siksi 25 XOR B6 = 93
Vastaa
Yritä muuntaa heksadesimaaliluvut binäärilukuiksi ja suorittaa eksklusiivisia OR: itä jokaiselle bitille. Muunna sitten binääriluvut takaisin heksadesimaalilukuiksi.
Kommentit
- Koska 16 on täsmälleen 2 ^ 4, voit tehdä tämän numerosuunnassa. Eli sinun ei ' sinun tarvitse muuntaa kokonaisluku binääriksi kerralla, voit tehdä sen yhden numeron kerrallaan, xor, ja sitten muuntaa tuloksen takaisin heksaksi
Vastaus
Kahden bitin noutaminen on helppoa.
Heksadesimaalimuunnoksen muuntaminen 4-bittiseksi on helppoa.
Näiden kahden tosiasian yhdistelmän pitäisi tehdä yhden heksadesimaalin ns. Jos kirjoitat taulukon jokaisesta numerosta binääriin (ajoitetussa testissä, onko tämä sen arvoista vai ei, riippuu siitä, kuinka paljon konversioita sinun on tehtävä), sinun ei tarvitse tehdä mitään kirjallista laskutoimitusta. Esimerkiksi xor e: lle ja 3: lle on 1110 xor 0011, joka on 1101, joka on d. Jos sinulla on taulukko valmiina, tämä laskenta on periaatteessa välitöntä.
Toista nyt tämä kaikille numeroille. Tämä voidaan tehdä numeroin, koska kukin heksadesimaali vie tarkalleen 4 bittiä