Grundlagen technischer Informatik

  • Hallo Jungs,


    ich habe ein paar Probleme mit einer Aufgabe, die wir gestellt bekommen haben. Ich will mal die Aufgabe komplett aufschreiben und dann meine Frage dazu stellen.


    Die Aufgabe:


    Bei der Addition zweier n-Bit Zahlen in Zweierkomplementdarstellung kann es sein, dass die Summe nicht durch n Bit darstellbar ist. In diesem Fall spricht man von einem Overflow oder Überlauf. Man kann einen Überlauf daran erkennen, dass das Resultat der Addition zweier positiver Zahlen negativ, bzw. die Summe zweier negativer Zahlen positiv ist.


    a) Geben Sie für beide Situationen konkrete Beispiele in 6-Bit Zweierkomplementdarstellung an.


    b) Jemand behauptet: Bei einer Addition in Zweierkomplementdarstellung liegt ein Überlauf
    genau dann vor, wenn sich der Übertrag, der von der linkesten Stelle generiert wird, vom
    Übertrag, der in die linkeste Stelle propagiert wird, unterscheidet (d. h. einer entsteht und der
    andere nicht). Hat er recht? Begründung !


    Zur Info : 1. Semester Informatik Studium..


    Zu a)


    6 Bit.. heißt das, eine potentielle Zahl schaut so aus : 101010 | zur Basis 2 ?
    Ein Überlauf..


    Wenn ich eine Binärzahl mit einer anderen addiere
    Bsp:


    001 + 011 = 100 (alle zur Basis 2)
    1 + 3 = 4


    Wenn das geklärt ist, frage ich mich, was mit dem Teil der Aufgabenstellung gemeint ist:
    " Man kann einen Überlauf daran erkennen, dass das Resultat der Addition
    zweier positiver Zahlen negativ, bzw. die Summe zweier negativer Zahlen positiv ist."


    Gleich kommt noch was.. könntet ja schon mal schauen, ob ihr mir da helfen könnt.. aber mir brennen sonst meine Nudeln an..

  • Zu A(der Bit Zahl) Ja genau so.


    Nur verstehe ich wie du nicht was mit "Man kann einen Überlauf daran erkennen, dass das Resultat der Addition
    zweier positiver Zahlen negativ, bzw. die Summe zweier negativer Zahlen positiv ist."


    Obwohl ich nichts damit zu tun hab, würde es mich auch interessieren;)

  • Kenne mich jetzt auch nicht so gut damit aus, aber wenn die Zahl vorzeichenbehaftet ist(was sie in diesem Fall ist, da sonst keine negative Zahl bei einem Überlauf einer Addition heraus kommen kann), ist das höchstwertige Bit negativ.
    Bei einer Länge von 6 Bit wäre das also -32 und entspricht einem Werte Bereich von -32( 100000 ) bis 31( 011111 ). Wenn du jetzt also 2 Zahlen miteinander addierst, die ein Ergebnis >31 haben, wird das erste Byte gesetzt und die Zahl ist negativ.
    Bsp:

    Code
    1. 010101 + 010000 = 100101
    2. 21 + 16 = -27


    Gleiches gilt dann auch für die Addition von negativen Zahlen, nur eben umgekehrt.
    Korrigiert mich, falls ich falsch liege.^^

  • Danke User000User,


    das hat mir jetzt erst mal geholfen, dass ich zumindest so viel schon habe..


    Zwei Zahlen


    010100 <- 20
    + 001111 <- 15


    _____________
    100011 <-35


    Da die Zahl >31 ist.. müsste sie Minus werden.. nur wie kommst du bei dir da auf -27 ?

  • VIelleicht hilft dir das auch nocht, wichtig ist halt das du Binär rechnen kein Problem hast und verstehst was es mit Komplement auf sich hat!



    Zu B:
    Hat recht, weil 5 "übrigen" Bits sich jeweils ergänzen ? Musste halt nachrechnen.


    Bin mir aber auch nicht mehr sicher, muss zum glück nicht mehr so oft Bits hin und her kutschieren und das erste Semester ist auch schon ewig her :D


    Gruß

  • User000User,


    du musst mir nochmal genau erklären wieso bei dir -27 rauskommt.. ??


    Bist du hingegangen und hast -32 genommen dann die differenz zwischen 32 und 37 was 5 ist..


    Und dann von -32 die 5 abgezogen um auf -27 zu kommen ?



    PS: Was ist wenn ich folgendes habe


    100101 <- -27
    +100111 <- -25
    11
    ?00


    Wenn ich zwei 1sen übereinander habe und dazu noch einen Übertrag..


    Wie gehe ich dann vor ?

  • Also habe ich folgende Aufgabe die ich mir ausgedacht habe richtig gelöst oder ?


    100101 + 100111 = 001100
    -27 + -25 = 12


    Right ?


    Danke Jungs.. ich glaube ich habe es verstanden..
    Habt mir wirklich geholfen..
    Danke


  • 100101 => -32 +0+0+4(2^2)+0+1(2^0) = -27
    100111 => -32 +0+0+4(2^2)+2(2^1)+1(2^0) = -25


    Also hast du recht.

  • Brauche nochmal dringend Eure Hilfe..


    Erstmal die Aufgabe:


    a) Welchen Wert repräsentiert die Bitfolge
    d1:= 10100101|2 = 165|10


    Wenn es sich dabei um eine Festkommazahl mit drei Nachkommastellen in
    a1) Betrag und Vorzeichen Darstellung
    a2) Einer-Komplement Darstellung
    a3) Zweier-Komplement Darstellung
    handelt = Bitte schreiben Sie nicht nur das ergebnis auf, sondern geben Sie auch den Rechenweg an !


    Was a1 - a3 Ist weiß ich.. aber hier wieder das Problem.. was wollen die ?

  • Aber was hast Festkommazahl und Nachkommestellen damit zu tun ?
    Betrag und Vorzeichen würde ergeben


    Als Betrag 165 und Vorzeichen wäre dann irgend ne Minus zahl die ich noch nicht ausgerechnet habe..


    Einer komplement wäre die Binärzahl invertiert also 1 zu 0 und 0 zu 1
    Zweier komplement wäre eine invertierte einer komplement binäre +1

  • Was das heißt steht da doch: Festkommazahl mit drei Nachkommastellen.
    Du sollst jede Zahl als x,yyy interpretieren, sprich immer drei Stellen nach dem Komma und das dann unter Berücksichtigung der Fälle a1 bis a3.


    Wenn du mit der Berechnung von Nachkommastellen in b-adischen Systemen nicht vertraut bist, empfehle ich dir: http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm
    Die Nachkommazahlen werden auf der Seite ganz unten behandelt.

    Kontakt: PN - ICQ
    i7 3770K • ASRock Extreme4 Z77 • Thermalright HR-02 Macho • 2x8GB DDR3 1600 • Palit JetStream GTX 680 • Asus Xonar Essence STX
    be quiet! Straight Power E9-CM 580W • Samsung SSD 830 Series 128GB • WD Caviar Green 2TB • 3x WD Caviar Green 3TB • Corsair Obsidian Series 550D