Πίνακας περιεχομένων:
Βίντεο: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
Μια παγίδα των χειριστών προγραμματισμού C παρέχει χειρισμό δεδομένων στο δυαδικό επίπεδο. Οι χειριστές είναι εύκολο να αγνοηθούν, αλλά μόνο όταν δεν εκτιμάται η πραγματική ισχύς και η χρησιμότητά τους.
Το ~ και! operators
Δύο σπάνιοι δυαδικοί χειριστές είναι το ~ (ή το συμπλήρωμα του 1) και το! (ή όχι). Δεν έχουν τη γοητεία των λογικών bitwise χειριστών, αλλά έχουν μια θέση.
Ο χειριστής συμπληρώματος του 1 περιστρέφει όλα τα bits σε μια τιμή, μετατρέποντας ένα 1 σε 0 και 0 σε a 1. Για παράδειγμα:
~ 01010011 = 10101100
Το! (NOT) χειριστής επηρεάζει ολόκληρη την τιμή - όλα τα bits. Αλλάζει οποιαδήποτε μη μηδενική τιμή στο 0 και η τιμή 0 έως 1:
! 01010011 = 00000000! 00000000 = 00000001
Μηδέν και 1 είναι τα μόνα δύο δυνατά αποτελέσματα όταν χρησιμοποιούμε το bitwise! χειριστής.
Τόσο το ~ και! οι χειριστές είναι unary χειριστές - απλά προθέστε μια τιμή για να λάβετε τα αποτελέσματα.
Λειτουργία | Ονοματεπώνυμο | Πληκτρολογήστε | Ενέργεια |
---|---|---|---|
& | ΚΑΙ | OR
Bitwise |
|
Ρυθμίζει τα bits, αλλάζοντας συγκεκριμένα bits από 0 έως 1 | ^ XOR | Bitwise | αλλιώς, στο 1 |
~ | συμπλήρωμα 1 | Unary | Αντιστρέφει όλα τα bits |
~ | NOT | Unary | 0 τιμές, έως 1 |
Η συνάρτηση | binbin () |
|
|
Δύο δηλώσεις εξηγούν τι συμβαίνει στη συνάρτηση binbin () για να μετατρέψει τις τιμές σε δυαδική συμβολοσειρά: bin [x] = n & 0x80? '1': '0'. n << = 1; Η πρώτη δήλωση εκτελεί μια μάσκα AND με την τιμή n. Όλα εκτός από το αριστερό κομμάτι του αριθμού απορρίπτονται. Εάν έχει οριστεί αυτό το bit, το οποίο το καθιστά TRUE, ο χαρακτήρας 1 αποθηκεύεται στον πίνακα. διαφορετικά, αποθηκεύεται ο χαρακτήρας 0. |
Η τιμή εκφράζεται ως 0x80, η οποία είναι δεκαεξαδική σημείωση, ένας τύπος στενογραφίας για δυαδικό. Η hex τιμή 0x80 είναι ίση με 10000000 δυαδική, η οποία είναι η μάσκα AND. Εάν η τιμή είναι 16 bits αντί για 8, χρησιμοποιείται 0x8000, η οποία δημιουργεί μια δυαδική μάσκα 16 bit.
Η δεύτερη δήλωση μετατοπίζει τα bits στην τιμή n μία εγκοπή προς τα αριστερά. Καθώς ο βρόχος περιστρέφεται και λειτουργεί μέσω της τιμής n, ένα άλλο bit της τιμής μετατοπίζεται στην αριστερή θέση. Αυτό το bit αξιολογείται και η δυαδική συμβολοσειρά χτίζεται εισάγοντας ένα χαρακτήρα '1' ή '0'.