「每天C語言乾貨」 4.數據基本運算(1)

一、上期回顧

上期問題int代表整數類型,但是如果我們真的不小心讓int類型的數帶小數了,比如3.6。這個時候輸出這個數字的值該是多少呢?,不知大家思考得如何了呢?

「每天C語言乾貨」 4.數據基本運算(1)

正確答案是3,大家有沒有親自去嘗試打印它的值呢?快讓我看看認為是四捨五入到4的小夥伴有哪些吧?

「每天C語言乾貨」 4.數據基本運算(1)

就算它的值是3.9999,結果一樣是3哦。這次的答案將在本期的內容中做講解。

「每天C語言乾貨」 4.數據基本運算(1)

二、算數運算

2.1 加法(+)

\tint a = 1,b = 2;
\tint c;
\tc = a + b;

上述的代碼就是讓變量c等於a加b的值,結果為c = 3。

\tint a = 8,b = 2;
\ta = a + b;

如果這樣結果會如何呢?會不會是兩邊同時減去a,於是b等於0呢?

「每天C語言乾貨」 4.數據基本運算(1)

其實,這句話的意思是先讓a加b,然後把相加後的結果賦值給a。但是狂拽酷炫的程序員還可以使用下面這種表達方法哦,結果是一樣的。同理,加法運算也可以運用在其他類型的數據上,比如char,double等。

\tint a = 8,b = 2;\t
a += b;

2.2 減法(-)

減法和加法類似,下面的式子結果就是a = 6。

\tint a = 8,b = 2;\t
a -= b;

2.3 乘法(*)

當然,乘法也是so easy啦!下面的式子結果就是a = 15。

\tint a = 5;
\ta = a * 3;
「每天C語言乾貨」 4.數據基本運算(1)

2.4 除法(/)

在除法中就要介紹一些坑了哦!在整數變量的運算中,運算只會取變量值的整數部分,不會做四捨五入,因此如果我們計算下面的式子:

\tint a = 7;
\ta /= 2;

最終的結果將會是3,不會是3.5!結果只去整數部分,誰叫int類型是整數呢?

「每天C語言乾貨」 4.數據基本運算(1)

同理,如果是整數3.5乘以2,結果將會是6,而不是7。

「每天C語言乾貨」 4.數據基本運算(1)

但如果用float浮點類型,那麼我們就可以正常計算小數了!現在將7除以2,就可以是3.5了哦。

「每天C語言乾貨」 4.數據基本運算(1)

同理,利用浮點型數計算3.5乘以2,結果將是7。而不是整數類型的計算結果6。

「每天C語言乾貨」 4.數據基本運算(1)

大家可以驗證一下,對於加法和減法,這個結論也是一樣適用的!

「每天C語言乾貨」 4.數據基本運算(1)

2.5 求餘(%)

求餘運算顧名思義,就是求商之後的餘數,比如將7除以2,餘數是1。

「每天C語言乾貨」 4.數據基本運算(1)

大家注意,求餘運算只能用於整數,不能用於浮點型的數哦,否則編譯器就會報錯。

「每天C語言乾貨」 4.數據基本運算(1)

「每天C語言乾貨」 4.數據基本運算(1)

三、單目運算

3.1 非運算(!)

非運算也是比較好理解的,就是讓一個數的結果倒置,結果為讓“真”,變為“假”,讓“假”變成“真”。

c語言規定非0的數就是“真”, 只有0才為“假”。對0做非運算的結果為1,而對非0的數做非運算的結果都為0。

「每天C語言乾貨」 4.數據基本運算(1)

大家可以看到,不管是正數b還是,負數a,非運算的結果都是0。對於等於0的變量c,非運算的結果為1。

「每天C語言乾貨」 4.數據基本運算(1)

3.2 按位取反(~)

按位取反涉及到二進制的運算知識,意思就是將二進制0變成1,將二進制1變成0。比如對於8位十進制數7這個數字,它的二進制表示為0000 0111,對其進行按位取反後,值為1111 1000,對應十進制為-8。

「每天C語言乾貨」 4.數據基本運算(1)

大家都知道要求一個二進制數的相反數,就是將二進制數取反再加1,所以我們要求一個數的相反數,可以這樣做:

\tint x = 9;
\tx = ~x + 1;

當然x可以等於任何數,上述算法的結果為x = -9。

3.3 自加(++)

對於自加運算的結果,其實就是將一個數加1。但是自加存在先後順序的問題。比如下面的代碼:

「每天C語言乾貨」 4.數據基本運算(1)

代碼中的a++,表示在這行代碼執行結束後,a的值再加1

。所以在這行代碼執行時,變量b只會被賦值為a自加之前的值,也就是1。所以在接下來的printf函數中,就出現了a等於2,但b卻等於1的情況。

但是我們把“++”的位置變動一下,變成“++a”,結果就不一樣了哦!

「每天C語言乾貨」 4.數據基本運算(1)

代碼中的++a, 表在在這行在嗎執行結束之前,a的值事先+1,所以變量b會被賦值為a自加之後的值,也就是2。是不是很神奇呢?

3.4 自減(--)

自減的運算和自加是一樣的邏輯,大家可以把自加代碼中的“++”改成“--”試試看哦!

四、本期問題

對於自加運算是企業筆試題中相當常見的題目哦,讓我們來看看下面的式子運算後,a和b的值分別是多少吧?檢驗一下是不是真的學會了呢,我們在下期講解。

\tint a = 1;
\tint b = ++a+(a++)+a++;
「每天C語言乾貨」 4.數據基本運算(1)

如果大家喜歡可以關注轉發加收藏哦,看更多有趣乾貨!


分享到:


相關文章: