計算機採用二進位制是由計算機電路所使用的元器件性質決定的,計算機中採用了具有兩個穩定的二值電路,二值電路只能表示兩個數碼: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異或無變化,移位分 左 右 移,物件分 有 無符號數,只說一點 有符號數右移左側補符號位,叫算術移位,...