Seite 3 von 3

Re: Bit schreiben / lesen

Verfasst: 17.02.2011 09:21
von Thorium
Skiller hat geschrieben:Hallo Freunde,
konnte mich leider jetzt erst intensiver damit auseinader setzen.
@Thorium
;Bit 3 löschen
Test = Test & %0111
wie hast Du denn das Bit 3 gelöscht, ich wollt´s doch selbst setzen. Aber unabhängig davon habe ich im
Wies gesetzt wird hab ich ja auch gezeigt.
Nochmal etwas ausführlicher: Hier wird eine bitweise AND Verknüpfung durchgeführt. Dabei werden die einzelnen Bits zweier Werte miteinander verglichen und daraus ein neuer Wert gebildet. Bei AND ist das Bit im neuen Wert gesetzt, wenn es bei den beiden verglichenen Werten gesetzt ist. Ist es nur bei einem der beiden oder bei keinem gesetzt, wird es im neuen Wert gelöscht.

Also:

Test sieht am Anfang so aus: 1000
Bit 0 bis 2 sind gelöscht und bit 3 ist gesetzt.

Um nun Bit 3 zu löschen verrechnen wir es einfach mit AND und 0111.

Daraus ergibt sich:
1000 Test vorher
0111 Wert mit dem wir verrechnen
0000 Test nachher

Bit 0 in Wert1 ist 0 und in Wert2 1 also wird es 0 im neuen Wert.
Bit 1 in Wert1 ist 0 und in Wert2 1 also wird es 0 im neuen Wert.
Bit 2 in Wert1 ist 0 und in Wert2 1 also wird es 0 im neuen Wert.
Bit 3 in Wert1 ist 1 und in Wert2 0 also wird es 0 im neuen Wert.

Na, ich bin nicht so gut im Erklären. Such mal nach bitweisen Operationen bei Google. Das ist ziemlich wichtig zu verstehen, wenn du Wert auf Optimierung legst. Damit lassen sich viele Sachen machen. Man kann z.B. mit AND auch einen schnellen Modulo machen.
Skiller hat geschrieben: CodeArchiv mit 'macro_testbits.pb' die glaub ich schnellste Lösung gefunden. Das Problem allerdings: OS:Windows. Habt ihr vielleicht ne superschnelle plattformunabhängige Lösung?
Was ich gepostet habe ist am schnellsten. Es wird zum setzen und löschen nur eine einzige Operation ausgeführt. Ein Makro ist zwar etwas einfacher in der Handhabung aber da hast du eine zusätzliche Shift Operation. OS spielt keine Rolle, davon bekommt das OS garnix mit, gild natürlich auch fürs Makro.

Re: Bit schreiben / lesen

Verfasst: 17.02.2011 13:03
von Skiller
Bis denne... :allright:

Skiller