C語言學習之位操作的各種用法

2021-09-28 06:31:31 字數 532 閱讀 7588

平時很少用到的位操作的用途:

小寫字元轉大寫

以前總是用減法,減32即變成大寫。這種方法有弊端:必須確定當前字元是小寫,才能-32, 如果事前不知道該字元時大小寫,一種方法時判斷該字元是否在小寫字元區間,如果是就-32,如果不是就不進行操作。另一種方法可以通過位運算來實現。 如下部分c**

#include

intmain()

反之,大寫字母轉換成小寫,既可以+32(有弊端,可同上模擬),也可以:

#include

intmain()

判斷乙個數是不是2的n次方 n >= 0

if

(num&

(num-1)

==0&& num !=0)

printf

("是2的n次方\n"

);

換句話說,滿足num&(num-1) == 0的num,是2的非負整數次方或者0。

C語言學習之 define用法

說到 define大家首先應該想到的是巨集定義,對頭,但是這有什麼問題呢?於是谷歌一下,找到答案 define conn x,y x y define tochar x x define tostring x x x y表示什麼?表示x連線y,舉例說 int n conn 123,456 結果就是n...

C語言學習之檔案操作

開啟檔案 fopen 需要判斷是否成功開啟,開啟失敗返回null 操作檔案 讀檔案 fread 寫檔案 fwrite 關閉檔案 fclose 需要判斷檔案指標是否為空 file fopen const char pathname,const char mode file 返回檔案指標,若開啟失敗,返...

C語言學習 位運算

原碼 就是前面所介紹的二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。反碼 表示法規定 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外。補碼 表示法規定 正數的補碼與其原碼相同 負數的補碼是在其反碼的末位加 1 補碼是為了表示乙個負數的二進位制...