ビットごとに独占記事または
ビットごとに独占記事はまたはどちらかのビットが置かれれば、両方でない本当。 次のショービットごとに独占記事のまたは第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時なら、1に置かれる0時なら、0に置かれる。
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|