Allgemeines zu Zahlen (Dezimal, Binär, Hexadezimal)
Dezimalsystem (Basis 10)
Das Dezimalsystem ist das am häufigsten verwendete Zahlensystem und basiert auf der Basis 10. Es verwendet die Ziffern 0 bis 9.
Beispiel: 156 im Dezimalsystem bedeutet: 1 * 10^2 + 5 * 10^1 + 6 * 10^0 = 100 + 50 + 6 = 156
Binärsystem (Basis 2)
Das Binärsystem verwendet die Basis 2 und verwendet nur zwei Ziffern: 0 und 1. Dieses System wird intern in Computern verwendet, da es sich leicht mit elektronischen Schaltern darstellen lässt.
Beispiel: 1010 im Binärsystem bedeutet: 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 8 + 0 + 2 + 0 = 10 (dezimal)
Hexadezimalsystem (Basis 16)
Das Hexadezimalsystem verwendet die Basis 16 und verwendet die Ziffern 0 bis 9 sowie die Buchstaben A bis F, um die Werte 10 bis 15 darzustellen. Dieses System wird oft in der Programmierung verwendet, um binäre Zahlen kompakt darzustellen.
Beispiel: 1A3F im Hexadezimalsystem bedeutet: 1 * 16^3 + A * 16^2 + 3 * 16^1 + F * 16^0 1 * 4096 + 10 * 256 + 3 * 16 + 15 * 1 4096 + 2560 + 48 + 15 = 6719 (dezimal)
Umrechnung zwischen Zahlensystemen
Dezimal zu Binär
Um eine Dezimalzahl ins Binärsystem umzurechnen, dividiert man die Zahl wiederholt durch 2 und notiert den Rest. Die Binärzahl ergibt sich aus den Resten, aufgeschrieben in umgekehrter Reihenfolge.
Beispiel: Dezimalzahl 13 13 ÷ 2 = 6 Rest 1 6 ÷ 2 = 3 Rest 0 3 ÷ 2 = 1 Rest 1 1 ÷ 2 = 0 Rest 1
Binärzahl: 1101
Binär zu Dezimal
Um eine Binärzahl ins Dezimalsystem umzurechnen, multipliziert man jede Ziffer mit 2 hoch der Position (von rechts beginnend mit 0) und summiert die Ergebnisse.
Beispiel: Binärzahl 1011 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 8 + 0 + 2 + 1 = 11 (dezimal)
Dezimal zu Hexadezimal
Um eine Dezimalzahl ins Hexadezimalsystem umzurechnen, dividiert man die Zahl wiederholt durch 16 und notiert den Rest. Die Hexadezimalzahl ergibt sich aus den Resten, aufgeschrieben in umgekehrter Reihenfolge.
Beispiel: Dezimalzahl 255 255 ÷ 16 = 15 Rest 15 (F) 15 ÷ 16 = 0 Rest 15 (F)
Hexadezimalzahl: FF
Hexadezimal zu Dezimal
Um eine Hexadezimalzahl ins Dezimalsystem umzurechnen, multipliziert man jede Ziffer mit 16 hoch der Position (von rechts beginnend mit 0) und summiert die Ergebnisse.
Beispiel: Hexadezimalzahl 1C 1 * 16^1 + C * 16^0 1 * 16 + 12 * 1 16 + 12 = 28 (dezimal)
Anwendung in der Assemblerprogrammierung
In der Assemblerprogrammierung, insbesondere auf ARM64, wird oft die Hexadezimaldarstellung verwendet, weil sie eine kompakte Art und Weise darstellt, binäre Daten anzugeben und zu lesen. Hier ist ein kurzes Beispiel eines ARM64-Assemblercodes:
.global _start
.section .data
num: .word 0x0A // Hexadezimalzahl für 10 (dezimal)
.section .text _start:
// Lade die Hexadezimalzahl in ein Register LDR X0, =num LDR W1, [X0]
// Beenden des Programms (Exit System Call) MOV X8, #93 // Syscall für exit auf ARM64 SVC 0
In diesem Beispiel wird die Dezimalzahl 10 in hexadezimaler Darstellung (0x0A) in einem Datenbereich gespeichert und dann in ein Register geladen.