Bitwise αποκλειστικό Η
Αποκλειστικός Η είναι αληθινός εάν καθένα κομμάτια τίθενται, αλλά όχι και τα δύο. Οι ακόλουθες επιδείξεις το αποτέλεσμα του α αποκλειστικός Ή στους αριθμούς 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;
}
Φιλοφρόνηση Bitwise
Η φιλοφρόνηση είναι κλειστός χειριστής φιλοφρόνησής κάποιου εκείνες οι τραβέρσες το κομμάτι επάνω ή. Εάν είναι 1, θα τεθεί 0, εάν είναι 0 που θα τεθεί 1.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|