Побитовые исключительной или
Эксклюзив побитовое ИЛИ является Истина, если либо бит установлены, но не то и другое одновременно. Следующий пример показывает, результатом побитовое ИЛИ Эксклюзив на номера 23 и 12.
10111 (23)
01100 (12) Exclusive OR (XOR)
_____________________________
11011 (result = 27) |
Эксклюзив ИЛИ имеет несколько интересных свойств. Если вы Эксклюзив ИЛИ ряд сам по себе, он ставит себя на ноль, как нули останется нулевым, а те не могут установить это, обнулить.
В результате этого, если Вы Эксклюзив ИЛИ числа с другим рядом, Эксклюзивные И тогда результат опять другой номер, является результатом первоначальной численности. Вы можете попробовать это с цифр, используемый в вышеприведенном примере.
23 XOR 12 = 27
27 XOR 12 = 23
27 XOR 23 = 12
Эта функция может использоваться для шифрования. Следующая программа использует ключ шифрования из 23 для иллюстрации собственности на ряд сделанных пользователем.
#include <stdio.h>
int main()
{
int num, key = 23;
printf("Enter a number: ");
scanf("%d", &num);
num ^= key;
printf("Exclusive OR with %d gives %d\n", key, num);
num ^= key;
printf("Exclusive OR with %d gives %d\n", key, num);
return 0;
}
Побитовые дополнения
Побитовое дополнения, является одним комплиментом в том, что оператор переключает бит или выключить. Если он равен 1, будет равен 0, если оно равно 0 будет установлен в 1.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|