Ολίσθηση (shift) ↩️↪️
Στα κυκλώματα των υπολογιστών, τα δεδομένα αποθηκεύονται σε δυαδική μορφή, δηλαδή αποτελούνται μόνο από τα ψηφία 0 και 1, ανεξάρτητα από το πώς τα ορίζει ο προγραμματιστής. Τα δεδομένα αυτά μπορεί να είναι ακέραιοι, πραγματικοί αριθμοί, χαρακτήρες κ.λπ., και αποθηκεύονται σε δυαδικό σύστημα.
Για παράδειγμα, ο αριθμός 17 στο δεκαδικό σύστημα ισοδυναμεί με τον δυαδικό αριθμό 00010001 (σε δυαδικό σύστημα). Αυτός ο δυαδικός αριθμός μπορεί να αποθηκευτεί σε ένα byte.
Μετακίνηση προς τα αριστερά (left shift) ⬅️
Αν μετακινήσουμε τα ψηφία αυτού του αριθμού κατά μία θέση προς τα αριστερά, προσθέτοντας ένα μηδενικό στο τέλος του αριθμού και αγνοώντας το αρχικό 0 (που βρίσκεται στα αριστερά), τότε προκύπτει ο δυαδικός αριθμός 00100010, ο οποίος ισοδυναμεί με τον αριθμό 34 στο δεκαδικό σύστημα.
Μετακίνηση προς τα δεξιά (right shift) ➡️
Αντίθετα, αν μετακινήσουμε τα ψηφία κατά μία θέση προς τα δεξιά, αποκόπτοντας το τελευταίο ψηφίο 1 και βάζοντας μηδενικό μπροστά, τότε ο δυαδικός αριθμός γίνεται 00001000, που ισοδυναμεί με τον δεκαδικό αριθμό 8.
Συμπέρασμα 💡
Η ολίσθηση προς τα αριστερά ισοδυναμεί με τον πολλαπλασιασμό επί 2.
Η ολίσθηση προς τα δεξιά ισοδυναμεί με την ακέραια διαίρεση (DIV) διά 2.
Αυτή η διαδικασία είναι χρήσιμη σε πολλές υπολογιστικές εφαρμογές, όπου η αποδοτική επεξεργασία δεδομένων και οι γρήγορες πράξεις είναι απαραίτητες, ιδιαίτερα σε χαμηλού επιπέδου προγραμματισμό και κυκλώματα υλικού.
Πολλαπλασιασμός αλά ρωσικά ✖️
Ο πολλαπλασιασμός αλά ρωσικά είναι μια διαφορετική μέθοδος για τον πολλαπλασιασμό δύο ακέραιων αριθμών. Απαιτεί επαναλαμβανόμενη διαδικασία διπλασιασμού και διαίρεσης μέχρι να φτάσουμε στο τελικό γινόμενο.
Αυτή η μέθοδος υλοποιείται χρησιμοποιώντας τον εξής αλγόριθμο, που βασίζεται σε διαδοχικές επανεκτελέσεις του διπλασιασμού και διαίρεσης.
Αλγόριθμος Πολλαπλασιασμός_αλά_ρωσικά
Δεδομένα // M1, M2 //
P ← 0
Όσο M2 > 0 επανάλαβε
Αν M2 mod 2 = 1 τότε P ← P + M1
M1 ← M1 * 2
M2 ← M2 div 2
Τέλος_επανάληψης
Αποτελέσματα // P, το γινόμενο των ακεραίων M1,M2 //
Τέλος Πολλαπλασιασμός_αλά_ρωσικά
Πίνακας Υπολογισμού (Σχήμα 2.8)
M1 | M2 | Συνεισφορά στο άθροισμα |
---|---|---|
45 | 19 | 45 ✔️ |
90 | 9 | 90 ✔️ |
180 | 4 | 0 ❌ |
360 | 2 | 0 ❌ |
720 | 1 | 720 ✔️ |
Άθροισμα | 855 |