Ein Stück c bitweise ++ Code, den ich lesen will, istmathematische Gleichung äquivalente Operation
int x = 10;
int r = 5;
auto bb = x << (r & 0x1);
wo bb liest 20. Ich verstehe, wie bitweise Operation funktioniert, aber ich habe Schwierigkeiten seine mathematischen Logik zu erklären, sagen wir, den Einsatz traditionelle mathematische Gleichung, um oben zu erklären. Zum Beispiel bedeutet < < Verschiebung. Also x < < n könnte x^n sein? Was bedeutet dann & hier?
& wird als "bitweises und" bezeichnet.die Berechnung im Detail: 'x = 0b1010; r = 0b0101'. Jetzt bin 'r & 0x1 = 0b0101 & 0b0001 = 1' und dann 'x << 1 = 0b1010 << 1 = 0b10100 = 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 0 * 1 = 20'. siehe zum Beispiel http://www.learncpp.com/cpp-tutorial/38-bitwise-operators/ – kritzikratzi
ps. 'x << n' ist NICHT' x^n'. (Randnotiz: Bei der Programmierung ist der Hut '^' normalerweise ein Bit xor, nicht die mathematische Potenz). Wie auch immer, du kannst das Verschieben nur zur Bildung von positiven Zweierpotenzen benutzen, im allgemeinen: '1 << x = pow (2, x)'. ein paar Beispiele: '1 << 0 = pow (2,0) = 1;' '1 << 1 = pow (2,1) = 2;' '1 << 2 = pow (2,2) = 4 ' – kritzikratzi