我不太肯定位運算符&
和|
,可有人向我解釋究竟這些運營商做什麼? 我昨天在http://www.cprogramming.com/tutorial/bitwise_operators.html上看過教程,但是我真的不知道我是否想在編碼中應用它,有人可以舉一些例子。
Q
操作
-4
A
回答
0
的|
操作者(OR):
------------------------ a 0000 1110 1110 0101 ------------------------ b 1001 0011 0100 1001 ------------------------ a|b 1001 1111 1110 1101
操作者給出1
如果在號碼中的一個光點1
。
的&
符(AND):
------------------------ a 0000 1110 1110 0101 ------------------------ b 1001 0011 0100 1001 ------------------------ a&b 0000 0010 0100 0001
運營商提供了0
如果其中一個數字。
用法:如果我想只是數字的一部分(可以說第二組四)我可以這樣寫:
a & 0x00f0
位運算符的使用不是推薦初學者。
0
這是一個非常低級的編程問題。內存的最小位是「位」。一個字節是一個8位的塊,一個字是一個16位的塊,依此類推......按位運算符讓你改變/檢查這些塊的位。取決於你正在編寫的代碼,你可能永遠不需要這些操作員。
例子:
unsigned char x = 10; /*This declares a byte and sets it to 10. The binary representation
of this value is 00001010. The ones and zeros are the bits.*/
if (x & 2) {
//Number 2 is binary 00000010, so the statements within this condition will be executed
//if the bit #1 is set (bits are numbered from right to left starting from #0)
}
unsigned char y = x | 1; //This makes `y` equal to x and sets the bit #0.
//I.e. y = 00001010 | 00000001 = 00001011 = 11 decimal
相關問題
- 1. 按位操作的操作
- 2. 邏輯操作符操作
- 3. 操作員新操作員和新操作員不能重載?
- 4. 操作
- 5. 操作
- 6. 操作
- 7. 操作
- 8. 操作
- 9. 操作()
- 10. 操作
- 11. 操作
- 12. 操作
- 13. Java操作數和操作符謎
- 14. C#的操作員的操作順序
- 15. 操作字符串內的操作符
- 16. 超載對其操作(操作員*())
- 17. 結構引用操作(操作符 - >)
- 18. c - 解密中的位操作/操作
- 19. C++數組操作(python-like操作)
- 20. 操作隊列中的跟蹤操作
- 21. 位操作/操作計算器?
- 22. OpenERP主頁操作和菜單操作
- 23. WCF異步操作+ IO操作
- 24. 操作數和操作符的矩陣
- 25. 確定操作員的操作順序
- 26. C++中雙操作的新操作
- 27. QBO V3操作的操作順序
- 28. *操作符重載操作數順序
- 29. 操作按鈕轉到操作欄
- 30. 操作欄操作項的位置
你有沒有考慮拿起[一個很好的入門C++的書(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list )?這樣一本書將解釋這一點以及更多。 –
究竟是什麼,你不明白?你提供的教程非常廣泛 – Default