Informatik Dezimalzahl in 12 Bit Konvertieren?
Servus, ich steck bei einer Aufgabe Fest: Ich muss die Zahl +59 ins Zweierkomplement mit 12 bit umwandeln und ich weiß wie man es macht, nur weiß ich nicht wie ich das in 12 bit darstellen soll, da 59 111011 also 6 bit ist. Wie geht das?
2 Antworten
nur weiß ich nicht wie ich das in 12 bit darstellen soll, da 59 111011 also 6 bit ist. Wie geht das?
Da du im positiven bist: Mit Nullen davor auffüllen und das vorderste Bit für das Vorzeichen reservieren (was hier dann auch eine 0 ist)
Nein, nicht im Zweierkomplement.
Um da auf die Binärdarstellung von negativen Werten zu kommen, machst du Folgendes:
- Finde die Binärdarstellung von der positiven Zahl raus (also bei -59 brauchst du die Binärdarstellung von +59)
- Invertiere alle Stellen (alle 0 werden 1, alle 1 werden 0)
- Addiere 1
z.B. für 26:
Binärdarstellung: 00011010(2) = +26(10)
Invertieren: 11100101(2)
1 Addieren: 11100110(2) = -26(10)
Müsste so laufen:
Ein negative Integer-Zahl wird aus einer positiven gewonnen in dem man zuerst das Einskomplement herstellt in dem die Bits invertiert werden:
unsigned char: 59 Binär=
normal......: 00111011
Einskomp= 00000100
Dann zählt man Eins zum Einkomplement dazu:
und invertiert die restlichen Bits:
// unsigned short von 0 bis 65535
// -59 = 1111111111000101
// +59 = 0000000000111011
//ekomp= 0000000000000100
//ek +1 =0000000000000101
// 12 Bit
// ______012345678901
// +59 = 000000111011
//Einskomplement = 000000000100
//ek +1 =000000000101
// -59 = 111111000101
und wenn man -59 hat, dann 5 nullen und eine 1 davor?