•位操作符 所有的按位操作符的操作數都會被轉成補碼形式的有符號的32位整數。 有符號右移:拷貝最左側的位以填充左側 無符號右移:左側用0填充 對任一數值 x 進行按位非操作的結果為 -(x + 1)。例如,~5 結果為 -6。 在數字 x 上左移 y 比特得到 x * 2y. •條件運算符 條件運算 ...
•位操作符
所有的按位操作符的操作數都會被轉成補碼形式的有符號的32位整數。
運算符 | 用法 | 描述 |
按位與(AND) | a & b | 對於每一個比特位,只有兩個操作數相應的比特位都是1時,結果才為1,否則為0。 |
按位或(OR) | a | b | 對於每一個比特位,當兩個操作數相應的比特位至少有一個1時,結果為1,否則為0。 |
按位異或(XOR) | a ^ b | 對於每一個比特位,當兩個操作數相應的比特位有且只有一個1時,結果為1,否則為0。 |
按位非(NOT) | ~a | 反轉操作符的比特位,即變成1,1變成0。 |
左移(left shift) | a<<b | 將a的二進位形式向左移b(<32)位比特位,右邊用0填充。 |
有符號右移 | a>>b | 將a的二進位形式向右移b(<32)位比特位,丟棄被移出的位。 |
無符號右移 | a>>>b | 將a的二進位形式向右移b(<32)位比特位,丟棄被移出的位,並使用0在左側填充 |
有符號右移:拷貝最左側的位以填充左側
無符號右移:左側用0填充
對任一數值 x 進行按位非操作的結果為 -(x + 1)。例如,~5 結果為 -6。
在數字 x 上左移 y 比特得到 x * 2y.
•條件運算符
條件運算符也叫三元運算符
語法:條件表達式?語句1:語句2;
執行的流程:
條件運算符在執行時,首先對條件表達式進行求值
如果該值為true,則執行語句1,並返回執行結果
如果該值為false,則執行語句2,並執行返回結果
如上圖所示:a顯然不大於3,所以執行語句2,並執行返回結果 bbbb
•運算符的優先順序
•流程式控制制
流程式控制制語句
--程式都是自上向下的順序執行的 ,通過流程式控制制語句可以改變程式執行的順序,或者反覆的執行某一段的程式。
--分類:1條件判斷語句
2條件分支語句
3迴圈語句
◊分支語句
-->條件判斷語句(if)
一般書寫if分支的時候,我們的控制條件都不是互斥的,我們應該將小範圍的條件寫在前面
練習一:
練習二:
◊條件分支語句
練習一:
練習二:
◊迴圈語句
通過迴圈語句可以反覆執行某些語句多次
迴圈語句組成的四個部分:
1:初始化表達式
2:迴圈條件表達式
3:迴圈體部分
4:迭代部分(更新表達式)
◊for迴圈
語法:
for(①初始化表達式 ; ②迴圈條件表達式 ; ④更新表達式){
③迴圈體
}
練習一:
練習二:
練習三:
◊while迴圈
- 語法:
①初始化表達式
while(②迴圈條件表達式){
③迴圈體
④更新表達式
}
- 執行流程:
while語句在執行時,會先對條件表達式進行求值判斷,
如果判斷結果為false,則終止迴圈
如果判斷結果為true,則執行迴圈體
迴圈體執行完畢,繼續對條件表達式進行求值判斷,依此類推
練習:
◊do....while迴圈
- 語法:
①初始化表達式
do{
③迴圈體
④更新表達式
}while(②迴圈條件表達式)
- 執行流程
do...while在執行時,會先執行do後的迴圈體,然後在對條件表達式進行判斷,
如果判斷判斷結果為false,則終止迴圈。
如果判斷結果為true,則繼續執行迴圈體,依此類推
- 和while的區別:
while:先判斷後執行
do...while: 先執行後判斷
do...while可以確保迴圈體至少執行一次。
練習:
◊死迴圈
- 語法:
while(true){
}
for(;;){
}
練習:
◊嵌套迴圈
列印*****:
列印:*****
****
***
**
*
列印:*
**
***
****
*****