C語言 關於位運算子的簡單筆記

2021-10-24 16:09:29 字數 1001 閱讀 4977

很多系統程式都要求再bit (位)一級進行運算或處理。

位運算原本屬於組合語言的功能,。

c語言也提供了一些類似組合語言的功能。

位運算,是以二進位制位單位進行運算的。

例如:乙個char型資料佔據8個(二進位制)位,t.e.乙個byte(位元組),則

最右邊的二進位制位稱為第0位,最左邊的為最高位(即,符號位)。

位 運算

符邏輯運算子\\ 移位運算子\\ 自反賦值運算子\\ \end \right.

位運算子⎩⎨

⎧​邏輯

運算子移

位運算子

自反賦值

運算子​

~ 非:對二進位制每一位取反計算(~0=1;~1=0)

& 與: 只有對應的兩個二進位制位均為1時,結果位才為1,否則為0;(通常用於對於某些位置清零,根據對應位為1,才為1的原則,找乙個特定數來跟它「按位與」,用來中和它1的位)

| 或: a|b 的意思是只要有乙個為1,結果位就為1. (可以把資料的某些位置變為1,只需要找特定數的相應位置為1即可)

^ 異或: 當兩對應的二進位上的數不相同時,結果為1(可以用來將某些數上的位翻轉)

注釋:關於數制的轉換與儲存:

二進位制最高位是「符號位」1表示負數,0為正數。

對於正數:將數轉換位二進位制;反碼、補碼 與原碼相同。

對於負數:先按照絕對值轉化位二進位制,最高位為1;它的反碼是:將除了最高位之外的所有位 按位取反。補碼是將其二進位制的反碼加1;

左移(<<) a《右移(>>) a>>b: 將a所有位向右移動b個單位,低位溢位即捨棄,無符號整型資料高位補0(有符號位的資料:符號位為0(正數)時都補0,符號位為1(負數)時補0或1 看計算機系統)

即,復合賦值運算子(使用位運算子的復合賦值運算)

例如: a&=b =》a=a&b

|=^=

<<= (>>=)

C語言位運算子

一.c語言位運算子簡介 c語言的位運算子有六種,分別是 右移運算子 左移運算子 按位與運算子 按位或運算子 按位異或運算子 按位取反運算子 這些運算子都是對於基本資料型別的二進位制位進行操作的,這裡我們只討論整型資料型別的位運算 二.各個運算子的具體使用 右移運算子 將整數的二進位制形式整體向右移動...

C語言 位運算子

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 1 按位與 運算子 按位與是指 參加運算的兩個資料,按二進位制位進行...

C語言 位運算子

位操作符,主要包括 與,或 符 取反符 移位符 異或符 開始前先看一段實現二進位制輸出的 方便觀察位操作 參考鏈結知乎作者 碼農愛學習 void printf bin int num printf 每8位加個空格,方便檢視 printf r n 與0清0,與1不變 功能1 提取位資料 功能2 清除 ...