C語言入門(十一)位操作

2021-09-13 13:59:44 字數 749 閱讀 6189

位域:允許把乙個位元組拆開來使用,把乙個位元組的二進位制位劃分成不同的區域,並支援命名

使用位域的做法是在結構體定義時,在結構體成員後面使用冒號和數字來表示該成員所佔的位數

位域的寬度不能超過它所依附型別的長度

位域成員可以沒有名稱,只要給出資料型別和位寬即可

不能對位域進行取址運算

如:struct test

unsigned int a:1;

unsigned int b:1;

unsigned int c:2; //對於無符號整型,最大只能為32(位寬)

unsigned int   :3;

c語言並沒有規定乙個位元組的尺寸:「可定址的資料儲存單位,其尺寸必須可以容納執行環境的基本字符集的任何成員」

雖然c語言沒有規定具體資料型別的位數,但編譯器對各資料型別都明確定義了位數,若環境改變,定義也可能會變()

位操作邏輯位運算子:~ 按位取反,& 按位與,^ 按位異或,| 按位或(優先順序從左至右依次降低)

上述操作符除按位取反外,其他三個符號都可以跟賦值號即=號結合到一塊,使**更加簡潔

移位運算子: 11001010 << 2 將11001010左移2位  11001010 >> 2 移位效率很高

左移、右移運算子右邊的運算元如果是為負數,或者右邊的運算元大於左邊運算元支援的最大寬度,那麼表示式的結果均是屬於「未定義行為」

應用:1.確認位 掩碼按位與運算 2.開啟位 掩碼按位或運算 3.關閉位 掩碼按位取反並異或運算 4.轉置位 掩碼異或運算

彙編(十一) 位操作類指令

位操作類指令對二進位制的各個位進行操作,包括邏輯運算指令和移位指令。一 邏輯運算指令 邏輯運算指令用來對字或位元組按位進行邏輯運算,包括邏輯與and 邏輯或or 邏輯非not 邏輯異或xor和測試test五條指令。1 邏輯與指令and and dest,src des dest src 符號 表示邏...

C語言入門學習十一(一)

c語言中的運算就是對資料進行操作 處理的過程。那麼運算子又幹什麼的呢?運算子就是指定該運算的處理 方式。c語言中運算子分類 1 算術運算子 2 賦值運算子 3 關係運算子 4 邏輯運算子 5 三目運算子 符號功能 舉例加法 2 3 5 減法3 2 1 乘法2 3 6 除法6 2 3 取餘6 4 2 ...

c語言入門 《檔案操作》

3 關閉檔案 總結開啟檔案函式 fopen const char const char 第乙個引數 檔案路徑 1 相對路徑 2 絕對路徑 例如 1 相對路徑 和.c檔案在同一檔案目錄下,可直接寫檔名稱.檔案型別 fopen text.txt w 2 絕對路徑 fopen d studyfile te...