Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitmanipulation
teslanikola
29.08.2005, 19:09
So hab ein kleines Problem, ich will die Bits eines Bytes verändern ( Bitmanipulation) aber ich hab kein Plan wie das in Bascom gehen soll.
Beispiel:
das 3. Bit eines Bytes soll auf High gesetzt werden also von
&B00000000 nach
&B00000100
ohne die anderen Bits zu verändern also wenn ich zB sowas hab:
&B01010101
und das 4. soll High werden muss das rauskommen:
&B01011101
wie kann ich das lösen? Das es geht weis ich aber wie??????
Rage_Empire
29.08.2005, 19:29
Geht so:
xxxx=&B00000x00 or &B00000100
xxxx=xxxx and &B00000x00
nennt man maskieren oder so. Mit And und Or kannst du sehr viel machen. Viel erfolg
Soviel ich gesehen habe, kennt AVR BASCOM die typischen logischen Operatoren nicht. Ein kurzer Blick in die Hilfe liefert allerdings die Funktion "Bits" - dort solltest du einmal nachsehen.
teslanikola
29.08.2005, 19:49
ich hab noch was viel besseres entdeckt ( beim experimentieren)
das ist in BASCOM einfacher als ihr es euch vorstellen könnt:
Dim Variable as Byte
Variable = &B0000000
Print variable
Variable.5 = 1
Print variable
END
So probierts mal aus!!!!!!
Soviel ich gesehen habe, kennt AVR BASCOM die typischen logischen Operatoren nicht. Ein kurzer Blick in die Hilfe liefert allerdings die Funktion "Bits" - dort solltest du einmal nachsehen.
Unsinn. Mache Bascom bitte nicht schlechter als es ist.
Aus der Hilfe:
Logical Operators
Logical operators perform tests on relations, bit manipulations, or Boolean operators.
There four operators in BASCOM are :
Operator Meaning
NOT Logical complement
AND Conjunction
OR Disjunction
XOR Exclusive or
It is possible to use logical operators to test bytes for a particular bit pattern.
For example the AND operator can be used to mask all but one of the bits
of a status byte, while OR can be used to merge two bytes to create a particular binary value.
Example
A = 63 And 19
PRINT A
A = 10 Or 9
PRINT A
Henrik
@henrik
Es lag mir nicht daran, BASCOM schlecht zu machen. Ich habe lediglich in meiner BASCOM-Version im Hilfe-Index nachgesucht und dort weder eine Referenz zu den booleschen Operationen noch zum Stichwort LOGICAL gefunden - ich muss allerdings gestehen, dass ich nur kurz über die Indexstichwörter geschaut habe und da war es eben nicht dabei.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.