C語言位操作

2021-09-08 08:17:39 字數 1990 閱讀 9142

計算機採用二進位制是由計算機電路所使用的元器件性質決定的,計算機中採用了具有兩個穩定的二值電路,二值電路只能表示兩個數碼:0和1,用低點位表示「0」,用高電位表示「1」進製計數制是人們利用符號來計數的方法,一種進製計數制包含一組數碼符號和兩個基本因素。

(1)數碼:用不同的數字符號來表示一種數制的數值,這些數字符號稱為」數碼」。

(2)基:數制所使用的數碼個數稱為」基」。

(3)權:某數制每一位所具有的值稱為」權」。

1.二進位制整數

儲存方式:以二進位制方式儲存在記憶體中

76543210 ->位數從高位到低位

01001001 -> 二進位制表示形式

->數值1,2,4,8...以2的倍數增長

2.有符號整數

高位決定正負值,其他七位表示數值

儲存方式: 以二進位制補碼存放在記憶體中:(原碼,反碼,補碼)

(1. 原碼等於負數絕對值的原碼

(2. 反碼等於負數絕對值的原碼的反碼

(3. 補碼等於負數絕對值的原始碼的反碼+1

3.二進位制浮點數

儲存方式:浮點數分兩個部分儲存,乙個是二進位制小數和乙個二進位制指數。

(1. 小數轉換為二進位制,如0.5轉換為二進位制為0.10,即0.5*2進1

二進位制小數轉換為十六進製制 ,四位進1

(2. 浮點數表示

要在計算機中存放乙個浮點數,需要流出若干個位,存放乙個二進位制小數,其他的存放乙個指數。

數字的實際值是二進位制小數部分成2的指定次冪

4. c的位運算子

位邏輯運算子

(1.

二進位制反碼或按位取反:~ (單目運算子)

可用於某些依賴於具體計算機字長的應用中,從而使**是可移植的

如: x=x& ~0x7 ->0x7在記憶體中放入16bit加8個0,取反之後用&還原

(2.

位與(&)

用來對乙個資料的某個位 置0

兩個數都為真時才為真,其他為假

(3.

位或(|)

用來對乙個資料的某些二進位制位 置1

兩個數都為真或者有乙個數字真,那麼結果為真

(4.

位異或(^)

用來檢查兩個位是否相等

兩個都為真(兩個都為假)時為假,其他情況都為真

5.移位運算子

(1. << (

左移)左移運算子將其左側運算元的值的每位向左移動,移動的位數由其右側運算元指定,空出的位用0填充,丟棄左側末端的位

(2. >> (

右移)右移操作將其左側運算元的值的每位向右移動,移動的位數由其右側運算元指定,丟棄移出左側運算元右端的位。

增加位運算的應用

1.應用:(&)

a. 清零特定位(mask中特定位 置0,其它位為1,s=s&mask)

b. 取某數中指定位(mask中特定位 置1,其它位為0,s=s&mask)

2.應用:(|)

a. 常用來將源運算元某些位 置1,其它位不變。(mask中特定位 置1,其它位為0,s=s|mask)

3.應用:(^)

a. 使特定位的值取反(mask中特定位 置1,其它位為0,s=s^mask)

b. 不引入第三變數,交換兩個變數的值(設 a=a1,b=b1)

C語言位操作

在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來 完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功 能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種位運算...

c語言位操作

位運算 and與 有一位為0 運算就為0 想獲取高四位,a a 0xf0 簡寫 a 0xf0 清零 一三五七位清零 a a 0x55 檢測位 檢測第三位 a a 0x04 遮蔽高四位,保留低4 位 a a 0x0f 統計2進製a中1的個數 1 include2 int main 3 11 print...

C語言位操作

朱老師物聯網大講堂 學習筆記 1 位與 只有1 1才是1,其餘全是0,位或 只有0 0才是0,其餘全是1,位取反 按位操作,位異或 1 0 1 0 1 1,也就是說相異結果是1,與1異或會取反,與0異或無變化,移位分 左 右 移,物件分 有 無符號數,只說一點 有符號數右移左側補符號位,叫算術移位,...