我一直在編程了好幾年,我一直想知道關於位運算符的實際應用。
在我的編程經驗中,我不必使用按位運算符。 他們什麼時候最常用? 在我的編程生涯中,我需要學習這些嗎? 謝謝。 友善地, 詹姆斯
Q
位運算符
0
A
回答
1
按位操作經常使用接近硬件 - 打包數據,壓縮或打包多個布爾值到一個字節。按位操作直接映射到處理器指令,並且通常非常快。
如果您正在使用I/O或設備接口,則按位操作變得非常必要 - 將位域的各個部分分隔爲重要數據。
或者您可以將它用作快速乘以2。 :)
1
另一個有趣的使用二進制和位twiddling。
將莫爾斯碼打包成單個字節。一個.
是0
和-
爲1
A = .-
A = 00000001xB
// Add a 'start bit'
A = 00000101xB
移位大約8倍,就當你發現起始位演奏音色。
+------- Monitor this position
V
A = 00000101 // Starting off
A = 00001010 // Nothing yet
A = 00010100 // Still nothing
A = 00101000 // WOw, a lot of nothing
A = 01010000 // Our boring life, we do nothing
A = 10100000 // Wow! A start bit! Prep to play sound.
A = 01000000 // Play a short
A = 10000000 // And play a long.
1
我沒有必要它編碼帕斯卡我用它來乘或除每當除數或乘法是2
顏色的功率存儲在一個字節與文本顏色的時候,但最近回低4位和高4位背景色。
使用c < < 4而不是c * 16,c >> 4而不是c/16來保存或檢索背景的速度要快很多倍。
並用c檢索文本顏色< < 4 >> 4由於某種原因也快於c & 15(bitvize和)。可能是註冊相關的;)但那是我頭上的方式:D
但是除非你正在進行校驗和計算,壓縮或加密,否則你可能無法做到。
即使您可以將位存儲在int中,驅動程序也可以以任何方式爲您優化內容,並且可以使用Flag枚舉將位標誌自動裝入字節,字或整數值中。
所以我猜想,因爲你還沒有找到使用,你可能不會在他們有意義的領域工作。
相關問題
- 1. 位運算符
- 2. 布爾運算符的位運算符
- 3. 位運算符算術
- 4. ç位運算符
- 5. 按位運算符
- 6. 位OR運算符
- 7. 按位運算符
- 8. java位運算符
- 9. 位運算符predence
- 10. 布爾運算VS位運算符
- 11. 用位運算符替換「!=」
- 12. 關於位運算符
- 13. 按位運算符左移
- 14. Javascript「==」運算符位於
- 15. 位運算符的android
- 16. 比較位運算符
- 17. 左移位運算符C++
- 18. 使用位運算符
- 19. Javascript按位運算符
- 20. 位運算符Postgres裏
- 21. 向左移位運算符
- 22. 整數移位運算符
- 23. 關於移位運算符
- 24. C++'>'按位運算符
- 25. 位運算符的Java
- 26. HQL使用位運算符
- 27. 按位'&'運算符on uint
- 28. 約(位和)運算符
- 29. 按位運算符&邏輯
- 30. Haskell按位運算符Data.Bits
做任何一種低級別的工作,你在操縱事物二進制,你會發現他們*真實*有用。根據您使用的語言,您通常可以將位字段打包爲整數並節省內存。 –