c語言中的位運算與進製(一)

2021-08-10 23:40:46 字數 2471 閱讀 1476

位運算:(需轉換為二進位制)

左移:<<、右移:

>>

、按位與:

&、按位或:

|、按位取反:

~、按位異:

^1<<16意為:

16的二進位制表示形式

0b10000

向左移一位,相當於十進位制的

16/2.

16>>1意為:

16的二進位制表示形式

0b10000

向右移一位,相當於十進位制的

16*2.

16&15意為:

16的二進位制表示形式

0b10000與15

的二進位制表示形式

0b1111

,如果同位數的值相同為

1,不同為

0,結果為

016|15意為:

16的二進位制表示形式

0b10000與15

的二進位制表示形式

0b1111

,同位數只要有乙個是

1,那麼該位就是

1,同位數都是

0,那麼就是

0,結果為

0b11111即31

~16意為:

16的二進位制表示形式

0b0000 0000 0000 0000 0000 0000 0001 0000

,每位都取反,結果為

0b1111 1111 1111 1111 1111 1111 1110 1111

即-17

16^15意為:

16的二進位制表示形式

0b10000與15

的二進位制表示形式

0b1111

,同位數相同為

0,不同為

1,結果為

0b11111即31

16^31:

16的二進位制表示形式

0b10000與31

的二進位制表示形式

0b11111

,結果為

0b1111即15

,發現16^15^16 = 15

其它運算子:

1.     

sizeof:用來表示所佔位元組數。

sizeof使用注意:

sizeof(int)是允許的,但是

sizeof int

為錯誤寫法

。2.    

scanf

時、指標等

。資料的隱式轉換和顯式轉換,型別轉換最好是由低到高

。3.     

++a與

a++在運算時的區別

:區別在參與運算時,

++a會把自加後的值參與運算;

a++則不會

4.     

邏輯運算的 && 當前面乙個條件不滿足時,後面的不會執行;

|| 第乙個條件滿足後,後面的條件也不會執行5、c

語言中」真「

、」假「

是用」1「

、」0「

表示。6、邏輯運算和位運算的區別:邏輯運算是對條件的判斷;位運算是把十進位制轉換為二進位制然後對資料進行操作。

進製:進製常用的有十進位制、二進位制、八進位制、十六進製制等。十進位制的數字表示為0~

9;二進位制數字表示為0、

1;八進位制數字表示為0~

7;十六進製制表示為0~

9,a~

f 。c語言中各進製表示如:

int a = 6 ; //預設定義是十進位制

int b = 0b1101 ; //二進位制以0b或

0b開頭

int c = 07 ; //八進位制以0開頭

int d = 0x 16e ; //十六進製制以0x或

0x開頭

其中以十進位制和二進位制應用頻率最高。

十進位制轉二進位制:

1、正整數十進位制轉二進位制:

將需要轉換的正整數一直除2取餘,知道為0或

1,右下到上將餘數排列即可求出這個正整數的二進位制表示。計算機中

int 有32

位,其中首位

0代表正整數,

1代表負數。例:

15的二進位制表示為

0000 0000 0000 0000 0000 0000 0000 1111

2、負數十進位制轉二進位制;

1>原碼:負數取絕對值用二進位制表示。

例:-17取絕對值

17,表示為

0000 0000 0000 0000 0000 0000 0001 0001

2>反碼:得到絕對值二進位製取反,例:

17取反為

1111 1111 1111 1111 1111 1111 1110 1110

3>補碼:取反數值補

1,例:

-17最後得到結果

1111 1111 1111 1111 1111 1111 1110 1111

二進位制轉十進位制:

從右向左用二進位制的每個數乘以2的對應次方。

例:11101二進位制轉十進位制

1*2^0+0*2^1+1*2^2+1*2^3+1*2^4=29

C語言中的位運算

0 推薦 在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種...

C語言中的位運算

c語言中的位運算有六個 按位與 按位或 按位異或 取反 左移 右移 除 以外其餘均為二元運算子,即要求運算子兩側均有乙個運算量 位運算量只能為整型或字元型,不能為實型資料。1.按位與 0 0 0 0 1 0 1 0 0 1 1 1 3 5 00000011 00000101 00000001 1 的...

C語言中的位運算

在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種位運算子 ...