как определить, если 0 бит в одном int идет в 1 в другом int - PullRequest
1 голос
/ 12 марта 2020

Скажем, у вас есть два целых числа, A и B.

int A = 0b0011;
int B = 0b1001;

Как мне определить, переходит ли 0 в A в 1 в B.

Надеюсь не имеет значения, если 1 в A переходит в 0 в B, или если бит остается прежним, только если 0 переходит в 1.

Вывод, который я хотел бы получить, был бы:

result = 0b1000

1 Ответ

2 голосов
/ 12 марта 2020

A xor B

0011
1001
----
1010

Result & B

1010
1001
----
1000

Xor устанавливает в 1 биты, которые отличаются в A и B. Но вас интересуют только случаи, когда 0 ' в A это 1 'в B. Чтобы отключить такие биты, просто & с B.

...