Ich habe diese Tabelle:Wie kann ein einzelnes Bit einer Binärzahl als Toggle aktualisiert werden?
// numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | 1001100111 |
| 2 | 0111000101 |
| 3 | 0001101010 |
| 4 | 1111111011 |
+---------+------------+
Ich versuche (Toggle) den Wert der siebten Stelle (rechts nach links) zu ändern. So konzentrieren sich auf diese Ziffer:
// for example
1001100111
^seventh digit (rtl)
Und das erwartete Ergebnis:
// new_numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | 1011100111 |
| 2 | 0101000101 |
| 3 | 0011101010 |
| 4 | 1101111011 |
+---------+------------+
Ich kann wie siebte Stelle aktualisieren
// set it to zero
UPDATE numbers SET numb = numb & b'1110111111';
Aber eigentlich muss ich es wechseln.
- wenn es
0
dann setzen sie1
- wenn es
1
dann setzen sie0
Wie kann ich das tun?
OMG sehen wollen ... Brillant ..! danke .. upvote – stack
Ich bin wunder .. Was ist Ihre Expertise? Sie haben eine goldene Plakette in C++, C#, IOS und .. ** außer ** MySQL. Aber Sie beantworten die Fragen von MySQL als Experte. Schön für dich. – stack
@stack Ehrlich gesagt, ich kannte keine MySQL-unterstützten Bit-Operatoren, bis ich heute Morgen Ihre andere Frage sah. Ich schaute das Handbuch nach und sah, dass MySQL die gleichen Operatoren wie C, C++, C#, Java und viele andere Sprachen verwendet. Arbeiten mit Bits ist eine portable Fähigkeit, weil die Operationen immer gleich sind. Alles, was Sie tun müssen, ist die Syntax in Ihrer Sprache nachzuschlagen. – dasblinkenlight