簡談位運算

2022-04-08 20:12:21 字數 1004 閱讀 3714

我們在平時抄題解做題時,常常會看到「<<」、「>>」之類的符號,這些看上去狂甩酷拽吊炸天的符號就是位運算。

這裡我簡單說一下位運算符號。

一、  &

對於這個符號,大家更常見的雙&。單&意為按位或,把參與運算的兩個數對應的二進位制位相與,只有對應的兩位都為「1」時,結果的對應為才為1,否則為0。

如,9的二進位制位00001001,7的二進位制位00000111,兩個數只有最後一位都是1,故9&5的運算結果為00000001,輸出1。

二、|與&類似,雙|表示或,單|表示按位或。將參與運算的兩數對應的二進位制位相或,只要對應為有乙個是「1」,結果的對應為就為1。

如,9的二進位制位00001001,7的二進位制位00000111,兩數相或得到的就是00001111,輸出結果為15。

三、^^是按位異或,把參與運算的兩個數對應的二進位制位相異或,若對應位的數字不同,即乙個為0、另乙個為1時,結果的對應位為1,若相同則為0。

如,9的二進位制位00001001,7的二進位制位00000111,兩數按位異或的運算結果為00001110,輸出結果為14。

四、~這是取反,把運算數的各個二進位制為按位求反,即0變1,1變0。

如,9的二進位制位00001001,求反後是11110110。需要注意的是,用於計算的數字要放在~後邊,9取反要寫~9。

以上四種位運算在實際做題中遇見的較少,至少我遇到的比較少。

這並不代表它們不重要,在某些情況下使用以上4中位運算會更加便利。

題目中比較常見的位運算是左移和右移。

一、左移

左移符號是「<<」,即兩個小於號,使用格式為a<左移n位,原數就變成 原數 * 2^n。

二、右移

右移符號是「>>」,使用格式同左移,為a>>b,表示a的每一位都向右移動b位,4>>2即將4的每一位都向右移動2位,從00000100變為00000001。

右移n位,原數就變成 原數 / 2^n。

左移和右移在一般的計算中要快一點,能起一定的優化作用。

位運算 簡析

位運算 在很多系統程式中常要求在位 bit 一級進行運算或處理,c語言提供了位運算的功能,使得c語言也能像組合語言一樣用來編寫系統程式,位運算共有 這六種。1.1.1按位與運算 按位與運算 是雙目運算子。按位運算通常用來對某些位清0 或者 保留某些位,如把a的高8位清0,保留低8位,與作 255運算...

簡談網路程式設計

網路程式設計的本質是兩個裝置之間的資料交換。乙個裝置中的資料傳送給兩外乙個裝置,然後接受另外乙個裝置反饋的資料。現在的網路程式設計基本上都是基於請求 響應方式的,也就是乙個裝置傳送請求資料給另外乙個,然後接收另乙個裝置的反饋。傳送第一次請求的程式,被稱作客戶端 client 等待其他程式連線的程式被...

mysql索引簡談

mysql索引簡談 一 什麼是索引 就好比我們在看一本書的時候,有目錄的話,我們可以快速定位到想看的地方,而沒有目錄的話,我們只能一頁一頁地翻。索引就像目錄,有了索引,資料庫可以快速查詢到目標內容,而不必查詢整個資料庫表,但是如果沒有的話,資料庫只能一行一行地遍歷資料。create table t ...