drakon hat doch schon ein super Beispiel angegeben
Ich versuch sein Beispiel einfach mal weiter zu erläutern. Ein Bit hat zwei Zustände, 0 und 1. Damit kannst du also zwei Werte darstellen. Wenn du eine Variable hast, die 1 Bit groß ist, kann diese Variable zwei Werte speichern. Bool hast du ja vielleicht schon kennen gelernt. Ein bool könnte theoretisch einfach durch ein Bit dargestellt werden. Wenn die Variable dann 0 ist bedeutet das false und wenn sie 1 ist bedeutet das true. Bei C++ ist das zwar intern etwas anders, aber das ist erst mal egal.
Jetzt stell dir eine Variable für Zahlen vor, welche 2 Bit groß ist. Mögliche Zustände sind dann:
00
01
10
11
Du hast ja jetzt zwei Bit, also auch zwei Stellen für die 0 und 1. Da die Variable jetzt Zahlen speichern können soll, müssen wir irgendwie noch festlegen, welcher Zustand der Variable welche Zahl darstellt. Dabei kann man dann sagen:
00 = 0
01 = 1
10 = 2
11 = 3
Wir können mit der Variable also zum Beispiel die Zahlen von 0 bis 3 darstellen. Das mit den Bits macht C++ schon für dich. was diese Bits bedeuten wird auch schon geregelt. Du musst es dann nur noch benutzen. Nun jetzt sind die Zahlen von 0 bis 3 ja nicht besonders spannend. Verdoppeln wir also die größe der Variable von 2 Bit auf 4 Bit:
0000=0
0001=1
0010=2
0011=3
0100=4
0101=5
0110=6
0111=7
1000=8
1001=9
1010=10
1011=11
1100=12
1101=13
1110=14
1111=15
wären jetzt die möglichen Zustände der Variable. Wie du siehst haben wir jetzt nicht 2 sondern vier Stellen für unsere 1 und 0. Ich habe direkt die Werte dafür dahinter geschrieben. Du siehst also dass wir jetzt die Zahlen von 0 bis 15 darstellen können. In unserem Zahlensystem ist das eigentlich genau so. Bei den Bits hatten wir zwei mögliche Zustände nämlich 0 und 1. Bei uns im Dezimalsystem haben wir 10 Zustände nämlich 0 bis 9. Eine einstellige Zahl kann also die Werte 0 bis 9 annehmen. Wenn du jetzt zwei Stellen zulässt, bekommst du von 0 bis 99 also 100 Möglichkeiten.
Die Rechnung für die Möglichkeiten ist recht simpel.
n^m. Wobei n für die Anzahl der Möglichkeiten einer Zahl steht, bei Bit also 2 (0 und 1) bei Dezimal 10 ( 0 1 2 3 4 5 6 7 8 9) und so weiter. m steht dann für die Stellen deiner Zahl. Wenn du eine einstellige Zahl hast, ist m = 1. Wenn du eine zweistellige Zahl hast ist m = 2 und so weiter. Testen wir das mal für unser Beispiel mit den Bits.
Ein Bit hat zwei Zustände ( 0 und 1 ) also ist n = 2. Wir gehen mal für einstellige bis 4stellige Bits durch:
m=1: 2^1 = 2
m=2: 2^1 = 4
m=3: 2^3 = 8
m=4: 2^4 = 16
Für das Dezimalsystem kannst du das dann selbst durchrechnen und überprüfen wenn du möchtest.
Ein Byte besteht jetzt einfach aus 8 Bit, zwei Byte bestehen also aus 16 Bit.
m=8: 2^8
m=16: 2^16
Das kannst du dir jetzt selbst ausrechnen. Dafür darfst du dann auch einen Taschenrechner benutzen
Sollte aber klar sein denke ich. Das ist zum programmieren erst mal alles eher unwichtig, da es einfach ein bisschen Theorie dahinter ist, als Programmierer sollte man es aber eigentlich wissen.