Когда побитовая операция & больше или равна побитовой операции ^?
Например, 4&7 ›= 4^7 верно.
Откуда мы знаем, когда это будет правдой?
Один из способов - сделать вручную, что будет скрытым трюком?
Когда побитовая операция & больше или равна побитовой операции ^?
Например, 4&7 ›= 4^7 верно.
Откуда мы знаем, когда это будет правдой?
Один из способов - сделать вручную, что будет скрытым трюком?
x & y >= x ^ y
. Что ты видишь? 24.09.2020 i&j >= i^j
, где i и j — случайные числа от 1 до 100, он возвращает true примерно в 25% случаев. 24.09.2020 Если говорить только о наборе бит. Это условие будет истинным, если старший бит common является также старшим битом набора в каждом из чисел.
Почему? Поскольку, когда старший установленный бит в обоих числах также является общим битом, этот бит будет установлен в результате операции И. И он не будет установлен в результате операции XOR.
И если старший установленный бит в наибольшем числе не установлен также и в младшем числе, то обязательно этот бит будет установлен в операции XOR и не установлен в операции AND.
Вы можете создать быстрое String
изображение следующим образом:
for i in 1...25 {
var foo = ""
for j in 1...25 {
foo += i&j >= i^j ? "•" : " "
}
print(foo)
}
•
••
••
••••
••••
••••
••••
••••••••
••••••••
••••••••
••••••••
••••••••
••••••••
••••••••
••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
••••••••••
Обратите внимание, как квадраты растут квадратично.
Из этого вы можете видеть, что когда i == j == true
он всегда возвращает true.