如何檢查C#中的「1」是否在「9」中?C#中的按位操作。如何將2 long轉換爲bool結果?
long l1 = 1L; // 0001
long l9 = 9L; // 1001
if (l1 & l9) // True (Cannot implicit convert 'long' to 'bool)
{
}
有可能在JavaScript中「&」,並在VB中它的「和」,但我想不出什麼,我在這裏失蹤。
如何檢查C#中的「1」是否在「9」中?C#中的按位操作。如何將2 long轉換爲bool結果?
long l1 = 1L; // 0001
long l9 = 9L; // 1001
if (l1 & l9) // True (Cannot implicit convert 'long' to 'bool)
{
}
有可能在JavaScript中「&」,並在VB中它的「和」,但我想不出什麼,我在這裏失蹤。
// check if result of binary op is != 0
// that means "contains"
if ((l1 & l9) != 0)
{
...
}
您需要檢查操作的結果不等於0
編輯 作爲@Damien:正確地指出,在這種情況下會糾正對證不平等0
,如簡單的>0
比較可能會產生誤報,如果第63位是以某種方式參與。
我想你應該檢查'!= 0'而不是'> 0',因爲如果涉及到位63,這將返回不同的結果。 –
@Damien_The_Unbeliever:好點。編輯。 – Tigran
你想比較結果爲1. – juharr
C#沒有從長/任何數字類型到布爾的隱式對話。 – Mafii
@Mafii有趣,你有什麼想法他們爲什麼這樣做? – radbyx