AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überlauf einer 4bit-Zahl

Ein Thema von hanselmansel · begonnen am 15. Okt 2006 · letzter Beitrag vom 15. Okt 2006
Antwort Antwort
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#1

Re: Überlauf einer 4bit-Zahl

  Alt 15. Okt 2006, 11:51
Zitat von hanselmansel:
Wenn ich das Ganze Probiere und dabei TVierBitZahl durch Byte ersetze, dann zwigt er mit 254... 255... 0 an.

Meine Fragen sind nun:
  • Woran liegt das?
Ein Byte kann nicht mehr aufnehmen, als 8Bit. Dort ist es bereits bedingt, da auch die CPU nur mit 8Bit-Werten arbeitet und damit auch den Ueberlauf beachtet und entsprechende Flags setzt ect. (ansonsten wuerde eine Operation auf AL bspw. AH veraendern, was nicht sein darf.)

Zitat von hanselmansel:
  • Wie bekomme ich es hin, dass auch meine 4bit-Zahl so praktisch überläuft?
Wenn die Sache nicht funktioniert, muss ich wohl oder über immer mit Modulo arbeiten...
Die CPU kann nicht mit (!)3-Bit-Zahlen arbeiten (0..7 braucht nur 3 bit), d.h. es muesste der Compiler selbst gucken, ob mir die Operation soeben einen Ueberlauf beschert hat. Anscheinend macht er das nicht, warum, kA.
Einen Ueberlauf kann man (in deinem Fall) auch ohne Modulo verhindern/bzw. erkennen:
Delphi-Quellcode:
(zahl and $F8 > 0) //Boolscher Ausdruck, der einen Ueberlauf erkennt
zahl := zahl and $07;//Um einen Ueberlauf zu verhindern
Zumindest sollte es in der Theorie so funktionieren, ich habs nich ausprobiert.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz