C 入門4 6 位運算子

2021-07-16 03:55:46 字數 928 閱讀 7641

1byte=8bit      //一位元組=8位

運算子 含義 描述

& 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0。

| 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1。

^ 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1。

~ 取反 ~是一元運算子,用來對乙個二進位制數按位取反,即將0變1,將1變0。

<< 左移 用來將乙個數的各二進位制位全部左移n位,右補0。

>> 右移 將乙個數的各二進位制位右移n位,移到右端的低位被捨棄,對於無符號數,高位補0。

(引用)關於~取反運算子。 如果a=10,  那麼~a =-11.原理如下:

~10轉換成2進製為~1010.

~1010的反碼是0101

而負數在計算機中的表示是用補碼,-11求補碼過程:1011取反->0100加1->0101

即-11等價於~10

括號中的是0101

補充說明:是這樣的,1010在32位計算機中的儲存實際上是00001010,取反後是11110101,在計算機中首位是0表示正數,是1表示負數,即11110101表示的是乙個負數,即要由11110101求這個負數,即求補碼的逆,步驟:先減1得11110100,再取反,取反時符號位不變,得10001011,即-11。用4位表示的話可以填0101,或者是8位的11110101

大多數**中都不使用這些運算子,但應知道這些運算子的存在,它們主要用於高度優化的**。在這些**中,使用其他數學操作的開銷太高了,因此它們通常用於驅動程式或系統**。



C 位運算子

c 源自c,在提供高階語言便利的同時,也繼承了c在硬體程式設計方面的功能。因此適用於編寫裝置驅動和嵌入式大 c c 提供位邏輯運算子和移位運算子。二者只能用於整形和字元型。位運算子是對每位進行操作而不影響左右兩位,這有別於常規運算子 是將整個數進行操作的。一 位邏輯運算子 1 按位取反 將1變為0,...

C 位運算子

最近工作專案壓力不大,便繼續開始自學c 發現基礎知識忘記的差不多了.上網搜尋了一些基礎的不能再基礎的東西,溫故知新.c 位運算子 http www.diybl.com course 3 program c cppjs 20090403 163995.html c c 提供位邏輯運算子和移位運算子。二...

C 位運算子

位運算子作用於位,並逐位執行操作。和 的真值表如下所示 pq p qp q p q000 0001 0111 1110 1001 1假設如果 a 60,且 b 13,現在以二進位制格式表示,它們如下所示 a 0011 1100 b 0000 1101 a b 0000 1100 a b 0011 1...