Hallo Bernhard!
Wieso ist 1024 Byte = 1 KB? In google hab ich gesucht, aber immer nur gefunden _dass_ es so ist aber nicht warum!
Es gibt kleine k's die 1000 meinen - das eine glatte Zahl für die Dezimalfraktion. Und es gibt grosse K die heissen 0x400 (hexadezimal) oder %10000000000 (binär) das ist eine glatte Zahl[1] für die Dualzahlfraktion.
Und umrechnen kann man das auch: 1000(dez) ist %1111101000(binär) (was, wie du sofort siehst nur ein ganz klein wenig weniger als %10000000000 ist nämlich grad mal:
%10000000000
-%1111101000
--------------
%11000
und das kriegt dann sogar die Dezimalfraktion in 24 konvertiert.
Warum wird Speicher aber in 'Dualzahl'-Grössen angegeben und gebaut?
Speicher wird binär adressiert, eine unmittelbare Folge der verwendeten Digitaltechnik mit zwei Zuständen.
Will ich nun einen Speicher mit 1024 Zellen bauen brauche ich dafür 10 bit zur Adressierung einer Speicherstelle. Von diesen Adressen würden die von Nummer %00.0000.0000 bis %1.1111.1111 benutzt. Möchte ich diesen Speicher jetzt erweitern muss ich den Adressraum um 1 bit erweitern und der nächste Speicher liegt von Adresse %100.0000.0000 bis %111.1111.1111. Die unteren 10 Adressen sind gleich. Ich brauch also nur mit der 11. Adresse den einen oder anderen Speicher auswählen, die übrigen Adressen kriegen einfach beide Speicher parrallel. (Das haben schlaue Chiphersteller vorausgesehen und dafür einen extra Eingang eingebaut.)
Bei einem Speicher mit 1000 Zellen muss ich ebenso 10 bit zur Adressierung einer Speicherstelle haben. Von diesen Adressen würden die mit der Nummer %0000000000 bis %111110111 benutzt. Möchte ich diesen Speicher jetzt erweitern würde der nächste Speicher ab Adresse %111111000 bis %11111001111 liegen. Damit bräuchte diese Speicherchip eine ganz andere Adressierungslogik als der erste - nicht besonder Praktikabel. Oder es gibt Löcher im Speicher - auch nicht so toll.
Und da 2^10 ja auch eine Zehn enthält und ganz in der Nähe des dezimalen k liegt hat es sich wohl durchgesetzt.
Gruss,
Carsten