AW: Problem mit Bit-Manipulation
Und genau das ist richtig.
das höste Bit ist quasi das "-" und damit die 0 nicht doppelt vorkommt, gibt es kein "-0", weswegen dann natürlich die negativen Darstellungen um 1 verschoben sind. > Zweierkomplement Laß dir das Ergebnis und den Eingang doch einfach mal Hexadezimal oder Binär ausgeben. |
AW: Problem mit Bit-Manipulation
okay... wenn ich die NOT Funktion anwende und das Ergebnis in Binär ausgebe stimmts schonmal
|
AW: Problem mit Bit-Manipulation
Es hätte mich auch gewundert, wenn nicht. Wie gesagt, Du kannst zur Not noch AND-verknüpfen, wenn Du Dich auf eine bestimmte Bitbreite einschränken willst.
|
AW: Problem mit Bit-Manipulation
Danke schonmal für die Antworten :thumb: Dann probiere ich das mit dem AND jetzt mal noch aus
|
AW: Problem mit Bit-Manipulation
Delphi-Quellcode:
Könnte man das auch verwenden? :lol:
(not zahl1) and (not 2147483648);
|
AW: Problem mit Bit-Manipulation
Zitat:
Delphi-Quellcode:
:zwinker:
ShowMessage(IntToStr(not 4 and $0000000F));
|
AW: Problem mit Bit-Manipulation
Verwende auch mal Cardinal (LongWord) statt dem Integer (LongInt).
Dazu dann noch IntToStr und StrToInt64, für die Umwandlung. Bedenke, daß es 2147483648 im "Integer" nicht gibt. Es funktioniert nur, da dieses zufällig (falls überhaupt) in einen Int64 umgewandelt wird. Der Compiler verwendet selten Cardinal und versucht es öfters gegen Integer/Int64 zu casten. Wärend $80000000 in einen Integer paßt, da bei der Hexadezimaldarstellung vom Compiler standardmäßig kein "-" erwartet wird und es somit in 32 Bit reinpaßt. |
AW: Problem mit Bit-Manipulation
:-Dcool, danke für die :thumb: so läufts endlich :-D
Das mit dem Cardinal werd ich mir mal genauer angucken :-D |
AW: Problem mit Bit-Manipulation
Der Unterschied zwischen Integer und Cardinal ist einfach der, dass Integer vorzeichenbehaftet ist, d.h. das höchstwertige Bit bestimmt, ob es sich um eine positive oder negative Zahl handelt.
|
AW: Problem mit Bit-Manipulation
ah okay... und bei Cardinal würde die Zahl dann positiv bleiben
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz