Inhoud (hex) avr geheugen schrijven als decimaal getal

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Berichten: 1

Inhoud (hex) avr geheugen schrijven als decimaal getal

Hallo,

Ik ben even aan het stoeien met een opdracht om een unsigned integer van 2 bytes als decimaal.

Gegeven is het programmageheugen (hexadecimaal) 3C 4E 52 5A.

Deze inhoud moet ik schrijven als decimaal getal wanneer uitgegaan wordt van een unsigned integer van 2 bytes.

Ik heb de volgende uitwerkingen gemaakt.

Ik heb eerst de waarden geconverteerd van hexadecimaal naar decimaal.

3C = 60 (decimaal)

4E = 78 (decimaal)

53 = 83 (decimaal)

5A = 90 (decimaal)

Vervolgens heb ik deze waarden weer geconverteerd naar binair, achter elkaar geschreven en opgesplits in 2 gedeelten van 2 bytes (2x (2x8bits)).

00111100010011102 01010011010110102

Deze twee gedeelten heb ik toen weer geconverteerd van binair naar decimaal en bij elkaar opgeteld.

Hier staat volgens mij dus 15438 + 21338 = 3677610 als het gaat om een unsigned integer van 2 bytes.

Volgens mij staat hier hetzelfde getal wanneer uitgegaan wordt van een signed integer van 2 bytes omdat het tekenbit(eerste teken) in beide gevallen 0 is en dus positief.

Echter weet ik niet zeker of mijn beredenatie juist is.

In het boek waar wij mee werken staat hiervoor geen duidelijke toelichting hoe je dit omrekent.

Verder begrijp ik niet veel van hoe het op internet wordt toegelicht.

Alvast bedankt!

Met vr. Groet,

Thomas

Berichten: 7.068

Re: Inhoud (hex) avr geheugen schrijven als decimaal getal

toosterloo schreef:Ik ben even aan het stoeien met een opdracht om een unsigned integer van 2 bytes als decimaal.

Gegeven is het programmageheugen (hexadecimaal) 3C 4E 52 5A.
In 4 bits kan ik 16 mogelijkheden beschrijven. Elke letter of elk cijfer is dus 4 bits. Elke twee karakters zijn dus een byte. Ik tel 4 paren van 2 karakters. Dat is dus 4 bytes... jij hebt het over 2... ?
Deze inhoud moet ik schrijven als decimaal getal wanneer uitgegaan wordt van een unsigned integer van 2 bytes.
Endianness?
Ik heb de volgende uitwerkingen gemaakt.

Ik heb eerst de waarden geconverteerd van hexadecimaal naar decimaal.

3C = 60 (decimaal)

4E = 78 (decimaal)

53 = 83 (decimaal)

5A = 90 (decimaal)

Vervolgens heb ik deze waarden weer geconverteerd naar binair
Converteren naar binair is niet nodig. En waarom zitten er '2'en in je binaire code?

Stel dat 5A het least significant byte is. In dit byte passen de waarden 0 tot 255. De waarden in het tweede byte (van achteren) is dan dus 256*{waarde tweede byte}. De waarde van het derde byte is dus 256*256*{waarde derde byte} en zo verder...

Reageer