python - 按位“与”、“或”、“异或”运算的使用场景有什么?
阿神
阿神 2017-04-17 18:00:22
0
5
907

按位“与”、“或”、“异或”运算的使用场景有什么?

阿神
阿神

闭关修行中......

全部回覆(5)
阿神

異或運算是密碼學的核心運算之一。

很多對稱加密都是基於異或運算。

巴扎黑

他們都是二進制運算符,都是彙編下概念,一般來講,用不上。
但是由於他們較為底層的運算符,所以運算起來速度飛起,在常規操作中也能用上。
例如:
與運算子一般用來清零。
與運算子可以用來轉換一個整數到短整數(實際上是把dword轉為word)。

0xffffeeee&0xffff=0xeeee

或運算一般用來補碼。
例如一個整數型是4個位元組,32個位元組,就表示他能做一個容納32位元的配置所在。 (TRUE/FALSE),这个时候可以用來將某位置1。

異或一般用來加密
除此之外還有左移當乘法,右移當除法等奇淫異巧。

這方面知識點太多了,一般沒必要特意學習。如果對二進制了解多的話自然就明白了。老實講,有一定難度。
我打了半天字,估計能看懂的也沒幾個。 。

PHPzhong

位元運算在嵌入式和驅動程式設計方面運用的更多一點,有關直接操作暫存器的情況下會用上,在應用層方面貌似並不多。
不過我印像中倒是有很多奇淫技巧會用上,我印象最深刻的是leetcode上面的一道題:
LeetCode 136. Single Number

題目很簡單,要求是找出唯一一個在陣列中出現一次的整數,而其他都會出現兩次。

通常的想法都是打表,然而數組大了之後速度很慢,然後就有了按位異或的演算法。
直接把數組的所有數字按位異或,最後剩下的那個數字就是所求,至於是為什麼可以去網上搜看。

黄舟

舉個實際場景中的例子
配置一個位元組中某幾位的值。
範例:
要設定這個變數的某一位,用位元或a = a|0x01 ,這是設定了最後一位,要提取某一位的值,可以用按位與b = a&0x01 這是提取最後一位的值。

小葫芦
  • 位元遮罩、點陣圖等

  • 二進位格式處理(例如TCP header)

  • 密碼學

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!