Z
das ganze läuft so ab...
positive Zahlen (egal, welcher Basis), lassen sich nach links beliebig mit nullen auffüllen (00123d ist das gleiche wie 123d, 1010b entspricht 00001010b)
Wenn du mit vorzeichenbehafteten (signed) Zahl wird das MSB (Most Significant Bit, also das Bit mit dem höchsten Wert [in der Regel ganz links]) als Vorzeichen gesehen. 0 steht für +, 1 für -
Die Umrechnung erfolgt über das sogenannte Zweierkomplement
Zum Beispiel willst du die Zahl -10d als 8Bit-Zahl darstellen.
10d entspricht bekanntermaßen 1010b
00001010 auf 8 Bit aufgefüllt
11110101 Kehrwert (0->1, 1->0) (Einerkomplement)
+ 1 1 Addieren (Zweierkomplement)
---------
11110110 (entspricht -10)
umgekehrt gehts genauso.
Falls du eine negative Zahl in einen größeren Zahlenraum bringen willst, musst du mit 1sen auffüllen (nicht wie sonst mit 0). Das kannst du erkennen, wenn du mit dem Windows-Taschenrechner eine negative Dezimalzahl in eine Binärzahl umwandelst
Also ist 10110b ebenfalls -10d
Wenn du also auch negative Zahlen beachten willst, dann musst du dich auf eine Wortbreite festlegen, an die sich auch der User halten muss. Wenn dann doch mal eine Zahl mit geringerer Wortlänge eingegeben wird, musst du erwartungsgemäß den Rest mit Nullen auffüllen. Kein User gibt gerne 31 Nullen ein, nur weil er 1b in Dezimal haben will