c 取整 Linux C開發 第三天

2021-10-12 03:31:34 字數 3028 閱讀 3436

雙目運算子:

/(取整)

%(取餘):只能用於整型運算中

單目運算子:

a++     a = a+1

++a當a++ 和++a前出現'='或者在printf中時或者在運算中時,兩者產生區別

(本質就是當a++或者++a需要將值賦予它人時會產生如下現象)

int b;

b = a++;    b = a, a = a+1;   先賦值,後運算

b = ++a;    a = a+1,b = a;    先運算,後賦值

int a = 10;

b = a++ + ++a + a++;    

錯誤:c語言中不能再同一句語句中對同一片空間進行反覆修改,會出錯.

關係運算子:多用於邏輯判斷與分支迴圈語句連用

==: 與'='符號區分

關係運算子運算是有結果的,結果就是bool型別的值

邏輯運算子:

&&:邏輯與

表示式1 && 表示式2

1          1           1

0          1           0

1          0           0

0          0           0

特性:1.與0與為0,與1與不變

2.逢0截止,判斷表示式1是否成立,如果成立需要繼續判斷表示式2,但如果表示式1已經不成立,則無需判斷

表示式2

||:邏輯或

表示式1 || 表示式2

1        1           1

1        0           1

0        1           1

0        0           0

特性:1.與1或為1,與0或不變

2.逢1截止

!:邏輯反       !250  == 0   !0 == 1

位運算子:   本質是對資料的補碼進行運算操作,按bit操作

~:按位取反

unsigned char a = 0x17

0001 0111

1110 1000     0xe8

注意!有符號數按位取反(&或者|或者^),符號位該怎麼變就怎麼變

-10原:1 000 1010

反:1 111 0101

補:1 111 0110

~ -10

0 000 1001     9

&:按位與    與0與為0,與1與不變

x = 0126   y= 0xac

x: 0   0101 0110

y:     1010 1100

0000 0100     0x4

|:按位或

x = 076    y = 0x89

x: 0011 1110

y: 1000 1001

1011 1111     0xbf

^:按位異或    相同為0  相異為1

x = 75     y = 0123

x: 0100 1011

y: 0101 0011

0001 1000        0x18

>>   算術右移  需要考慮符號位(歸還符號位) 移n位 正數高位補n個0 ,負數高位補n個1

格式:量  移位運算子  偏移量

unsigned char b = 0xe4

1110 0100  << 3

111  0 0100000

0010 0000   0x20

0000 0100  << 1

0000 1000

0000 0100 >> 1

0000 0010

注:在取值範圍內,左移移位擴大兩倍,右移一位縮小兩倍

-101 111 0110  補

-10 << 4

0 110 0000   96

-10 >> 1

1 1111 011

-10 >> 2

11   111101

特殊運算子:

, (逗號):

int x

x = (表示式1,表示式2,表示式3);

則最終x的結果為最後乙個逗號後的表示式的運算結果

? (條件運算子)

三目運算子:

表示式1 ? 表示式2 : 表示式3

判斷表示式1是否成立,成立輸出表示式2的結果  如果不成立輸出表示式3的結果

例如:用巨集實現比較兩個數的大小輸出較小的哪乙個

#define    min(x,y)    ((x > y) ? (y) : (x))

sizeof:用於計算資料型別大小

sizeof(資料型別或者變數名)

運算子的優先順序問題:不確定的時候~使用括號很重要!

重點問題:

位清零和置一:

unsigned char  a  = 0000 1010

清0:  0000 1000        a & ~(1 << 1)

1111 1101

~ (1 << 1)   0000 0010

需要將第n位清0時,只需將該數值按位與上 ~(1<< n-1)

置1:  0000 1110  |  0000 0001 << 2

a | 1 << 2

需要將第n位置1時只需按位或上 1 << n-1位

兩數交換的方法:

int a = 10,b = 13;

1.中間變數    int c    c = a,a = b,b = c;

2.算術交換    a = a+b   b = a-b  a = a-b    注:此法a+b不能超過a的資料型別

3.異或交換    a = a^b  b = a^b  a = a^b     注:a和b不能相等

移動開發第三天

rem root em 是乙個相對單位,類似於em,em相對于父元素的字型大小 rem基準是相對於html的字型大小 media mediatype and not only media feature mediatype 查詢型別 all 用於所有裝置 print 用於印表機和列印預覽screen...

封閉開發12天 第三天

2009 5 13 兩個字代表我們整個團隊所有人員感覺 疲憊!沒了第一天的新鮮,沒了第二天的熱鬧,全部被研發任務淹沒!部分人感冒了,乙個同事壞肚子了。用lwuit 做了乙個帶進度條的閃屏,要基於 lwuit 的瀏覽器有好多的困難 繼續嘗試中 太累了 估計再過兩天就適應這種研發節奏,就會好些。院裡領導...

C 學習第三天

一些基礎就可以略過了,看書不能太呆板。如果把一本書看完了,剩下的就是在實際專案中進行整合,訓練,然後整理成筆記。每天敲點程式,記點筆記。變數作用域 include include include std string s1 hello 全域性int main 結果 hello world 42 wo...