Hoe kan ik 2C8 hexadecimaal omrekenen naar 8-tallig stelsel, voor mijn website??

Ik moet voor encryptie in mijn website 2C8 omrekenen naar een 8-tallig stelsel, maar ik wil het met de hand kunnen doen omdat ik wil weten hoe de methode werkt. Kan iemand mij stapsgewijs uitleggen hoe ik dat kan doen?

Weet jij het antwoord?

/2500

Het beste antwoord

Eigenlijk net als in het decimale stelsel. Daar betekent 425 hetzelfde als 4*10*10 + 2*10 + 5. 2C8 in het hexadecimale stelsel betekent dus, decimaal geschreven, 2*16*16 + 12*16 + 8. De C staat immers voor het decimale getal 12. 2C8 is dus decimaal 712. Wil je dat omzetten naar het octale stelsel, dan moet je kijken hoevaak je het kunt delen door 8*8*8 (512 decimaal); dat blijkt 1 keer te kunnen. Het eerste octale cijfer is dus 1. Nu trek je die 1*8*8*8 van de 712 af; je houdt 200 over. Hoe vaak past 8*8 in 200? Dat is 3 keer. Het volgende octale cijfer is dus 3. Nu trek je die 3*8*8 van de 200 af; je houdt 8 over. Hoe vaak past 8 in 8? Dat is 1 keer. Het volgende octale cijfer is dus 1. Nu trek je die 1*8 van de 8 af; je houdt 0 over. Hoe vaak past 1 in 0? Dat is 0 keer. Het volgende octale cijfer is dus 0. Hexadecimaal 2C8 is dus octaal 1310. Toegevoegd na 1 minuut:   In dit geval kun je het heel makkelijk controleren met de rekenmachine van Windows. Start de rekenmachine, zet hem in de wetenschappelijke stand (onder het menu Beeld), klik linksboven op Hex en typ 2C8 in. Klik nu linksboven op Oct en je ziet dezelfde waarde in octale notatie. Toegevoegd na 7 minuten:   Ga je programmeren, dan doe je het als volgt. Eerst hexadecimaal naar de waarde. Stel de waarde op nul. Zolang je hexadecimale getal nog cijfers bevat, doe je het volgende: --  Vermenigvuldig de waarde met 16 (decimaal). --  Tel de waarde van het eerste cijfer van het hexadecimale getal erbij op. 2=2, C=12, enzovoort. --  Verwijder het eerste cijfer van je hexadecimale getal. Dan waarde naar octaal. Maak de octaalstring leeg. Herhaal nu het volgende: --  Reken waarde modulo 8 uit. --  Voeg het resultaat als cijfer toe aan de linkerkant van de octaalstring. --  Deel de waarde door 8; rond naar beneden af op een heel getal. Dit herhaal je tot de waarde nul is.

Het antwoord van Cryofiel is helemaal goed. Echter in plaats van het 10-tallig stelsel te gebruiken, kan je mijn inziens veel beter het 2 tallig stelsel gebruiken. Je moet dan de hexadecimale cijfers in 4 bits uitschrijven (zie tabel op onderstaande link): 0x2 = 0010, 0xC= 1100, 0x8=1000. Daarmee wordt je 0x2C8: 001011001000. Nu moet je van rechts naar links groepjes van 3 maken: 001 011 001 000 en deze als octale getallen schrijven: 001->1, 011->3, 001->1 en 000, dus geldt dat: 0x2CB = 1310 octaal = 01310. Als je dit eenmaal doorhebt, dan schrijf je zo ieder willekeurig groot hexadecimaal getal zo om naar zijn octale variant. Als je aan de linkerkant cijfers te kort komt, dan worden dat nullen, dus 0x10 = 0001 0000 = 00 010 000 = 000 010 000 = 020 (via Cryofiel's methode: 0x10 = 16 = 020). Let op: een 0x voor een getal geeft aan dat het hexadecimaal is, en alleen extra 0 voor een getal geeft aan octaal.

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100