Pertanyaan yang diberi tag bit-manipulation

102
Operasi dan penggunaan bitwise

Pertimbangkan kode ini: x = 1 # 0001 x << 2 # Shift left 2 bits: 0100 # Result: 4 x | 2 # Bitwise OR: 0011 # Result: 3 x & 1 # Bitwise AND: 0001 # Result: 1 Saya dapat memahami operator aritmatika dengan Python (dan bahasa lain), tetapi saya tidak pernah memahami operator 'bitwise'...

93
Apa itu CHAR_BIT?

Mengutip kode untuk menghitung nilai absolut integer (abs) tanpa bercabang dari http://graphics.stanford.edu/~seander/bithacks.html : int v; // we want to find the absolute value of v unsigned int r; // the result goes here int const mask = v >> sizeof(int) * CHAR_BIT - 1; r = (v +...

47
(x | y) - y mengapa tidak bisa hanya x atau bahkan `x | 0`

Saya membaca kode kernel, dan di satu tempat saya melihat ekspresi di dalam ifpernyataan seperti if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } di mana SPINLOCK_SHARED = 0x80000000konstanta yang ditentukan sebelumnya. Saya heran mengapa kita perlu (SPINLOCK_SHARED | 1) - 1- untuk...