Also, ich habe eine ganze Zahl mit einem Wert 7. (0b00000111) Und ich möchte es durch eine Funktion zu ersetzen 13. (0b00001101) Also, was ist der beste Algorithmus, um Bytes in einer ganzen Zahl zu ersetzen? Zum Beispiel:
%Vor%Sie brauchen nur:
%Vor% Beachten Sie, dass die Bitnummern ( index
) 0 sind, wobei 0 das niedrigstwertige Bit ist.
Beachten Sie auch, dass der neue Wert zurückgegeben wird , es gibt keine Möglichkeit, eine Ganzzahl "an Ort und Stelle" zu ändern, wie Sie es anzeigen (zumindest denke ich nicht).
Sie können bitweise Operationen verwenden. Ссылка
Wenn Sie ein gegebenes Bit auf 1 setzen möchten, können Sie bitweise 'oder' mit 1 an gegebener Position verwenden:
0b00000111 | 0b00001000 = 0b00001111
Um ein gegebenes Bit auf 0 zu setzen, können Sie bitweise 'und'
verwenden0b00001111 & amp; 0b11111011 = 0b00001011
Beachten Sie, dass das Präfix 0b für Binärzahlen und 0x für Hexadezimal steht.