Hello,小夥伴們大家好,今天開始進入C語言第四課時的學習。進入今天正式内容之前呢,先來看一下上次課程中的留下的一道練習題。
作業:
1.編寫程序從鍵盤得到四個整數,計算他們的求和結果并打印在屏幕上
1.操作符(邏輯操作符,位操作符和三目操作符)
邏輯操作符用來編寫邏輯表達式
邏輯表達式的計算結果一定是布爾值
!是一個單目邏輯操作符,它表示對一個布爾值求反(真變假,假變真)
這個操作符使用的時候要寫在一個布爾值的前面
雙目邏輯操作符包括==(等于),!=(不等于),>(大于),<(小于),>=(大于等于)和<=(小于等于)
最多包含一個雙目邏輯操作符的表達式叫簡單邏輯表達式
C語言中如果一個邏輯表達式裡包含多個雙目邏輯操作符則必須拆分成多個簡單邏輯表達式,然後再合并可以使用與(&&)和或(||)把兩個邏輯表達式合并成一個新的邏輯表達式
如果兩個邏輯表達式的結果都是真則用與(&&)鍊接後結果才是真,否則結果是假
如果兩個邏輯表達式的結果中有一個是真則用或(||)鍊接後結果就是真,否則是假
與(&&)和或(||)都具有短路特性(如果前一個邏輯表達式可以決定整個表達式的結果則後一個邏輯表達式根本就不計算)
位操作符可以直接操作二進制數位
~是一個單目位操作符,它可以把二進制中的每個數位求反(按位求反)
這個操作符應該寫在一個數字前面
雙目位操作符包括按位與(&),按位或(|)和按位異或(^)
他們可以把兩個數字對應二進制數位上的内容進行計算
按位與可以把對應二進制數位進行與計算隻要一個數位的内容是0則結果就是0
3 0000 0011
& 5 0000 0101
0000 0001
按位或可以把對應二進制數位進行或計算,隻要一個數位的内容是1則結果就是1
3 0000 0011
| 5 0000 0101
0000 0111
按位異或可以把對應二進制數位進行異或計算
如果兩個數位内容一樣則結果是0,否則結果是1
3 0000 0011
^ 5 0000 0101
0000 0110
移位操作可以把一個數字中所有二進制數位統一向左或者向右移動n個位置
>>表示向右移位操作
<<表示向左移位操作
它們都是雙目位操作符
操作符左邊是将要進行移位操作的數字,操作符右邊是移動的位數移位操作相當于把每個數位上的内容放到另外一個數位裡
移位操作不會修改任何存儲區的内容,它會得到一個新數字,這個新數字就是移位操作以後的結果向左移位時右邊空出來的位置上一定補充0
有符号類型數據向右移位時左邊空出來的位置上補充符号位,無符号類型數據向右移位是左邊空出來的位置上補充0
一般情況下向左移動n個位置相當于數字乘以2的n次方,向右移動n個位置相當于除以2的n次方
&也可以作為單目操作符使用,這個時候它可以用來計算一個存儲區的地址這個操作符應該寫在一個存儲區的前面可以使用%p作為占位符把地址數據打印在屏幕上
在我們的計算機上所有地址數據都是32個二進制數位
*也可以作為單目操作符使用,這個時候它可以根據地址數據找到對應的存儲區
這個操作符應該寫在一個地址數據前面三目操作符可以從兩個計算規則中選擇一個使用三目操作符格式如下
布爾值 ? 公式一 : 公式二
如果布爾值為真則采用公式一計算結果,否則采用公式二計算結果不要在問号後面寫賦值操作符
練習:
1.用三目表達式改寫超重邏輯表達式
2.類型轉換
如果表達式中所包含的數字類型不同則計算機會首先把他們轉換成同一類型,然後才進行計算
這個轉換過程叫隐式類型轉換,完全由計算機完成
在隐式類型轉換中一定把占地小的類型轉換成占地大的類型
如果不同數字的大小一樣則把整數類型轉換成浮點類型,把有符号類型轉換成無符号類型
在C語言程序中可以給數字指定一個類型,這叫做強制類型轉換
強制類型轉換語法如下
(char)num
強制類型轉換有可能造成數據丢失
類型轉換不會修改任何存儲區的内容,計算機會使用一個新存儲區記錄轉換後的數字,然後用這個新存儲區做其他計算
好了今天的内容就到這了,今天的内容好好理解消化即可。就不留作業了,有問題可以留言評論有時間我會給大家回複的哦~~另外希望大家多多轉發關注支持。。。。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!