Μπορείτε να κάνετε δυαδικό πολλαπλασιασμό;

Πίνακας περιεχομένων:

Μπορείτε να κάνετε δυαδικό πολλαπλασιασμό;
Μπορείτε να κάνετε δυαδικό πολλαπλασιασμό;

Βίντεο: Μπορείτε να κάνετε δυαδικό πολλαπλασιασμό;

Βίντεο: Μπορείτε να κάνετε δυαδικό πολλαπλασιασμό;
Βίντεο: Δεκαδικοί Αριθμοί- Πολλαπλασιασμός & Διαίρεση (Δ'- Ε' τάξη) 2024, Νοέμβριος
Anonim

Ένας αριθμός μπορεί να πολλαπλασιαστεί επί 2 χρησιμοποιώνταςτελεστές bitwise. Αυτό γίνεται χρησιμοποιώντας τον αριστερό τελεστή shift και μετατοπίζοντας τα bit που απομένουν κατά 1. Αυτό έχει ως αποτέλεσμα το διπλάσιο του προηγούμενου αριθμού. Ένα πρόγραμμα που δείχνει τον πολλαπλασιασμό ενός αριθμού με το 2 χρησιμοποιώντας τελεστές bitwise δίνεται ως εξής.

Πώς πολλαπλασιάζετε με το Bitwise;

Για να πολλαπλασιάσετε με οποιαδήποτε τιμή του 2 στην ισχύ του N (δηλαδή 2^N) μετατοπίστε τα bit N φορές προς τα αριστερά Για να διαιρέσετε μετατοπίστε τα bit προς τα δεξιά. Τα δυαδικά ψηφία είναι ακέραια 1 ή 0 - δεν μπορείτε να μετατοπίσετε ένα μέρος ενός bit, επομένως εάν ο αριθμός που πολλαπλασιάζετε με είναι δεν συνεπάγεται μια ακέραια τιμή του N, π.χ.

Είναι ο πολλαπλασιασμός bitwise πιο γρήγορος;

Η μετατόπιση bit εξακολουθεί να είναι ταχύτερη, αλλά για μη ισχύ δύο mul/div από τη στιγμή που κάνετε όλες τις αλλαγές και προσθέσετε τα αποτελέσματα είναι και πάλι πιο αργή.

Τι είναι ταχύτερος πολλαπλασιασμός ή διαίρεση;

Ο πολλαπλασιασμός είναι γρηγορότερος από τη διαίρεση. Στο πανεπιστήμιο διδάχτηκα ότι η διαίρεση διαρκεί έξι φορές περισσότερο από τον πολλαπλασιασμό. Οι πραγματικοί χρονισμοί εξαρτώνται από την αρχιτεκτονική, αλλά γενικά ο πολλαπλασιασμός δεν θα είναι ποτέ πιο αργός ή ακόμη και τόσο αργός όσο η διαίρεση.

Είναι το Bitshifting γρηγορότερο από τον πολλαπλασιασμό;

Η μετατόπιση bit αριστερά και δεξιά είναι προφανώς ταχύτερη από τις πράξεις πολλαπλασιασμού και διαίρεσης στις περισσότερες, ίσως και σε όλες, CPU, εάν τυχαίνει να χρησιμοποιείτε ισχύ 2. Ωστόσο, μπορεί να μειώσει τη σαφήνεια του κώδικα για ορισμένους αναγνώστες και ορισμένους αλγόριθμους.

Συνιστάται: