Programozzunk együtt!
C/C++ -ban is lehet variálni a biteket. Aki
esetleg ismeri az ASSEMBLY-t is egy kissé, az tudja, hogy milyen
bit-műveletekre van lehetőségünk:
AND (ÉS)
OR (VAGY)
XOR (KIZÁRÓ VAGY)
C/C++-ban a következő jelöléseket
használják az egyes műveletek elvégzésére:
Jelölés |
Művelet |
& |
AND |
| |
OR |
^ |
XOR |
Figyelem: Nem keverd össze a bit és logikai operátorokat! Az
előbbiekből egyet, az utóbbiakból pedig kettőt kell kitenni!
A következő táblázatokból kitűnik, hogy hogyan változnak
meg a bit értékek az egyes műveletekben:
Bit 1 |
Bit 2 |
AND |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
Bit 1 |
Bit 2 |
OR |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Bit 1 |
Bit 2 |
XOR |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Tehát a bit-operátorokat most
áttekintettük röviden. Most joggal merül fel, hogy ezt mire
is lehet használni? Egy példa: A xor-t fel lehet használni
titkosításra: ha valamit xor-olunk, majd az eredményt újra
xor-oljuk, akkor visszakapjuk az eredeti értéket.
Itt van egy egyszerű példa:
#include<stdio.h>
void main(void)
{
int x=63, y=49, temp;
printf("A ket ertek: 'x': %d, 'y': %dnn", x,y);
printf("'x'-et 'y'-al XOR-oljuk - erteke 'temp'-be
kerul...nn");
temp=x^y;
printf("'temp': %dnn",temp);
printf("'temp'-et 'y'-al XOR-oljuk - erteke 'x'-be
kerul...nn");
x=temp^y;
printf("Visszakaptuk az eredeti 'x'-et: %dnn",x);
}
2002. január 15., kedd 21:28