Entwickler-Ecke

Off Topic - Schultest über Hexadezimalsystem


Csharp-programmierer - So 13.09.15 12:08
Titel: Schultest über Hexadezimalsystem
Hallo Leute. Ich schreibe am Mittwoch in Informatik einen Test. Da ich 14 Jahre jung bin und in die 9. Klasse gehe, steht auf dem Stundenplan das Hexadezimalsystem. Wie man eine Haxadezimalzahl in eine Dezimalzahl umwandelt, glaube ich, weiß ich:

FF63AB h = (15 * 16 ^ 1 + 15 * 16 ^ 0) + (6 * 16 ^ 1 + 3 * 16 ^ 0) + (10 * 16 ^ 1 + 11 * 16 ^ 0)
= 255 + 99 + 176
= 530 d


Ich hoffe diese Vorgehensweise ist richtig. Nun kommt das Umwandeln von Dezimalzahlen in Hexadezimalzahlen :cry:
Ich denke mal man muss hier die erste Zahl durch 16 Teilen. Bin mir aber nicht genau sicher. Könntet ihr mir das bitte erklären?

In der Schule habe ich einen guten Ruf als "Informatiker". Hört sich jetzt komisch an, aber ich interessiere mich echt sehr über Computer und dessen Funktionsweise. Es wäre ja blamabel, wenn ich in dem Test versage.

Mfg :)


Ralf Jansen - So 13.09.15 12:38

user profile iconCsharp-programmierer hat folgendes geschrieben Zum zitierten Posting springen:

FF63AB h = (15 * 16 ^ 1 + 15 * 16 ^ 0) + (6 * 16 ^ 1 + 3 * 16 ^ 0) + (10 * 16 ^ 1 + 11 * 16 ^ 0)
= 255 + 99 + 176
= 530 d

War die Aufgabe eher FFh + 63h + ABh? Dann hast du Recht. Ansonsten gilt wie im Dezimalsystem hat jede Stelle ihre eigene Wertigkeit und die wiederholt sich nicht. Deinen Rechnengedanken deiner Rechnung aufs Dezimalsystem umgelegt glaubst du im Stellenwertsystem wäre die Wertigkeit jeder Stelle 1,10,1,10,1,10 usw. es ist aber natürlich 1,10,100,1000 etc. Du mußt den Exponenten einfach hochzählen. Also

FF63AB h = 15 * 16 ^ 5 + 15 * 16 ^ 4 + 6 * 16 ^ 3 + 3 * 16 ^ 2 + 10 * 16 ^ 1 + 11 * 16 ^ 0 = 16737195d


Zitat:
Ich denke mal man muss hier die erste Zahl durch 16 Teilen. Bin mir aber nicht genau sicher. Könntet ihr mir das bitte erklären?

Fast es geht aber immer um den Rest der Division (den modulo). Fürs Beispiel habe ich obige Rechnung umgedreht.

Quelltext
1:
2:
3:
4:
5:
6:
     16737195 : 16 =  1046074  Rest: 11   --> Ziffer: B
      1046074 : 16 =    65379  Rest: 10   --> Ziffer: A
        65379 : 16 =     4086  Rest:  3   --> Ziffer: 3
         4086 : 16 =      255  Rest:  6   --> Ziffer: 6
          255 : 16 =       15  Rest: 15   --> Ziffer: F
           15 : 16 =        0  Rest: 15   --> Ziffer: F   --> FF63ABh

Rechnen lassen habe ich das hier [http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm]. Als Informatiker ist man ja potentiell faul.


Csharp-programmierer - So 13.09.15 12:55

Vielen Dank. Aber wenn ich rechne:

16737195 / 16 kommt bei mir 1046074,688 raus. Wie kommt man da auf Modulo 11?


Th69 - So 13.09.15 13:18

Den Nachkommaanteil mit dem Nenner multiplizieren:

Quelltext
1:
0,6875 * 16 = 11                    


Ralf Jansen - So 13.09.15 13:23

user profile iconCsharp-programmierer hat folgendes geschrieben Zum zitierten Posting springen:
Vielen Dank. Aber wenn ich rechne:

16737195 / 16 kommt bei mir 1046074,688 raus. Wie kommt man da auf Modulo 11?

Ganz normales dividieren mit Rest [https://de.wikipedia.org/wiki/Division_mit_Rest]. So solltest du in der Schule mal angefangen haben dividieren zu lernen ;)


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
  16737195 : 16 = 1046074 Rest 11 
 -16
  ——
   07
   -0
    —
    73
   -64
    ——
     97
    -96
     ——
      11
      -0
      ——
      119
     -112
      ———
        75
       -64
        ——
        11



Edit: Wo ich die Antwort von TH69 gerade sehe. Die Antwort/Frage stellt sich eigentlich nur wenn man mit dem Taschenrechner dividiert denn die Lösung mit Rest liegt auf dem Weg zu der Lösung mit Nachkommastelen wenn man es manuell macht. Wenn du es mit dem Taschenrechner machst nimmt einfach dessen modulo Funktion und nicht die Divisionsfunktion (heißt dort mod oder %)


Th69 - So 13.09.15 14:18

Wie, man kann ohne Taschenrechner auch selber rechnen? :)


Delete - So 13.09.15 21:34

- Nachträglich durch die Entwickler-Ecke gelöscht -


Csharp-programmierer - Di 15.09.15 15:34

Also hier noch 3 Aufgaben von jeder Sorte. Könntet ihr mal bitte überprüfen, ob es richtig ist?

F2h = (15 * 16 ^ 1) + (2 * 16 ^ 0) = 240 + 2 = 242d

A8h = (10 * 16 ^ 1) + (8 * 16 ^ 0) = 160 + 8 = 168d

FA3h = (15 * 16 ^ 2) + (10 * 16 ^ 1) + (3 * 16 ^ 0) = 3840 + 160 + 3 = 4003d


Und jetzt von Dezimal und Hexadezimal:

976d = 976 / 16 = 61h

Ich glaube, hier hapert es. Könntet ihr mir das bitte nochmal erklären?


Delete - Di 15.09.15 15:53

- Nachträglich durch die Entwickler-Ecke gelöscht -


Ralf Jansen - Di 15.09.15 20:07

Wenn du die Umrechnungen prüfen willst kannst du das selber. Z.B. mit dem Taschenrechner (calc) von Windows. Einfach in den Programmierer Modus des Taschenrechners wechseln.