
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, die CC I V 2 rechnet mit dem Zweierkomplement, so wie es dein Rechner auch macht. Bei 16 Bit kann man 65536-32322 berechnen. Das klappt, allerdings braucht man für die Darstellung von 65536 mindestens 17 Bit. Folglich kann man nur durch die Bildung des Zweierkomplements eine negative Zahl darstellen (umwandeln). Wenn das MSB gesetzt ist zeigt dies eine negative Zahl an. Um den Betrag der negativen Zahl zu erhalten muss dann wieder das Zweierkomplement gebildet werden. 00101b = 5d aber 10101b <> -5d > Die CC1-V2 scheint das MSB vor dem Shiften einfach zu löschen, Die V2 verschiebt es mit. Ein Word ist genau 16 Bit lang, und das Vorzeichen bit ist nicht reserviert und wird bei allen mir bekannten Rechner Architekturen (x86 etc.) durch einen Shift ebenfalls beeinflusst. Die CPU weiß ja nicht, dass es eine negative Zahl ist, sie rechnet nur binär, erst bei der Ausgabe kommt dann ggf. das Vorzeichenbit zur Geltung. > führt demnach nur ein 15-Bit-Shift durch, während bei der CC1-V1.1 richtigerweise ein > arithmetisches Shift mit vollen 16 Bit ausgeführt wird. Wenn man 4 Bit hätte und einen recht Shift macht: 1001b hat man: 0100b Das oberste Bit _wird_ mit geshiftet. Wenn dann das Vorzeichenbit zusätzlich nocht gesetzt wird ist das eine Eigenart der CC1, keinesfalls aber Standart. Das würde nämlich dem hier entsprechen: (1001b SHR 1) OR 1000b Gruß, Stefan Meine Homepage: http://www.fdos.de/ccbpp |
| Antwort schreiben |