Informatik Dezimalzahl in 12 Bit Konvertieren?

2 Antworten

Von Experten Krabat693 und tunik123 bestätigt
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)


BlackDragon2210 
Fragesteller
 16.02.2021, 15:35

und wenn man -59 hat, dann 5 nullen und eine 1 davor?

0
xxxcyberxxx  16.02.2021, 15:40
@BlackDragon2210

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)
1

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

Woher ich das weiß:Hobby