Không sử dụng toán tử bitwise-and ( &
) trong nhị phân, không có. Phác thảo bằng chứng:
Giả sử có một giá trị k sao cho x & k == x % (k + 1)
, nhưng k! = 2 ^ n - 1 . Sau đó, nếu x == k , biểu thức x & k
dường như "hoạt động chính xác" và kết quả là k . Bây giờ, hãy xem xét x == ki : nếu có bất kỳ bit "0" nào trong k , thì sẽ có một số i lớn hơn 0 mà ki chỉ có thể được biểu thị bằng bit 1 ở các vị trí đó. (Ví dụ: 1011 (11) phải trở thành 0111 (7) khi 100 (4) bị trừ khỏi nó, trong trường hợp này, bit 000 trở thành 100 khi i = 4. ) Nếu một bit từ biểu thức của k phải thay đổi từ 0 đến một người để đại diện cho ki, thì nó không thể tính toán chính xác x% (k + 1) , trong trường hợp này phải là ki , nhưng không có cách nào cho boolean bitwise và tạo ra giá trị đó cho mặt nạ.