-4
A
回答
2
這裏的&
是按位&
(bitwise AND)。它執行AND操作(AND gate)。
這是一個真值表與門
+----------+-----------+-------------+
| X | Y | X & Y |
+----------+-----------+-------------+
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
+----------+-----------+-------------+
現在,按位取&
在任一側上的每個兩個數的二進制和執行與每個的它的對應的比特。例如
0011 0110 // 54
& 0001 0001 // 17
---------------
0001 0000 // 16
所以,你的病情(if (a & b)
)要滿足的一個例子是
a = 3;
b = 1;
所以
0000 0011 // 3
& 0000 0001 // 1
------------
0000 0001 // 1
爲1,即true
。
失敗的唯一條件是當a
和b
的所有相應位不相同或它們爲零時。
例如,對於
a=3;
b=4;
所以
0000 0011 // 3
& 0000 0100 // 0
----------------
0000 0000 // 0
這是0,因此false
,並且每當結果是假,if語句不執行。
因此,對於除0之外的a & b
的任何值,如果條件被執行。
0
一個例子應當澄清:
a =0b 1111 0000
b =0b 0001 0001
a&b=0b 0001 0000
只有當第n位是在a和b將在& b第n個比特給1 1。如果值a & b不等於0,則if語句將成爲truthy。
相關問題
- 1. 轉換C++代碼(與指針和比特移位)到C#
- 2. 32位或64位?使用C代碼
- 3. 運行32位和64位java代碼
- 4. 是否可以鏈接C代碼與llvm位代碼?
- 5. 位移位和位掩碼 - 示例代碼
- 6. 在Linux 64位上組合C和彙編(32位代碼)
- 7. LLVM跨代碼位代碼
- 8. ulong,位於PHP的位掩碼和位移C#
- 9. 位與在C++
- 10. 位與XOR的條件語句
- 11. 64位位掩碼和javascript
- 12. C++預處理器位置代碼:: blocks?
- 13. 從C代碼運行64位JVM
- 14. 用GCC編譯的16位C代碼
- 15. c代碼洞穴計算64位jmp#
- 16. 按位C代碼舍入問題
- 17. 16PIC877A使用C代碼復位
- 18. 帶C代碼的4位LCD
- 19. 多線程進度條和代碼位置(vb.net)?
- 20. 位數REG代碼
- 21. NASM - 64位代碼
- 22. C# - 在32位和64位
- 23. 條件基於迭代的位置
- 24. 遷移C++代碼32位機器到64位機器
- 25. 將C++代碼從32位轉換爲64位
- 26. 從64位.NET代碼調試64位C++ - 如何?
- 27. 將非託管C++代碼從32位轉換爲64位
- 28. 移植C編寫的32位源代碼到64位
- 29. 搜索(和重新定位)行條件
- 30. C#CefSharp WPF着定位依賴條件
你做了一些研究嗎? – Rizier123