Αποστολέας Θέμα: ΟΛΙΣΘΗΣΗ ΠΡΟΣ ΤΑ ΑΡΙΣΤΕΡΑ  (Αναγνώστηκε 5622 φορές)

Ιωαννίδης Π.

  • Επισκέπτης
ΟΛΙΣΘΗΣΗ ΠΡΟΣ ΤΑ ΑΡΙΣΤΕΡΑ
« στις: 05 Δεκ 2005, 09:25:43 πμ »
Τι ισχύει για την ολίσθηση προς τα αριστερά του δυαδικού αριθμού 10000000 (δηλ. του αριθμού 128); Πως θα προκύψει ο διπλάσιος του;

Ευχαριστώ πολύ

STUDENT

kinik

  • Επισκέπτης
Re: ΟΛΙΣΘΗΣΗ ΠΡΟΣ ΤΑ ΑΡΙΣΤΕΡΑ
« Απάντηση #1 στις: 05 Δεκ 2005, 10:12:24 πμ »
Η ολίσθηση αυτού του αριθμού 10000000 ( ο αριθμός 128) γίνεται αναπαριστώντας τον αριθμός χρησιμοποιώντας 16 δυαδικά ψηφία (2 Byte) και όχι οκτώ δηλαδή έχεις τον αριθμό:
0000000010000000 (αν δε χρησιμοποιήσεις 16 δυαδικά ψηφία έχει υπερχείλιση μνήμης και δε γίνεται ολίσθηση).
Με αυτή την αναπαράσταση ο αριθμός μετά από ολίσθηση προς τα αριστερά είναι ο:
0000000100000000 ( ο αριθμός 256)

chaos

  • Οπαδός
  • **
  • Μηνύματα: 15
  • Εν αρχή ην το χάος
Re: ΟΛΙΣΘΗΣΗ ΠΡΟΣ ΤΑ ΑΡΙΣΤΕΡΑ
« Απάντηση #2 στις: 05 Δεκ 2005, 12:37:35 μμ »
Καλημέρα,

χωρίς να αναιρώ τίποτα από την απάντηση του kinik θα ήθελα να προσθέσω τα παρακάτω.

Ελπίζω να σου είναι γνωστό ότι η κάθε μεταβλητή - σταθερά που χρησιμοποιείς "αποθηκεύεται" σε μια θέση μνήμης η οποία ανάλογα με την αρχιτεκτονική του μηχανήματος μπορεί να έχει μήκος 8, 16, 32, 64, 128 bit. Αν θελήσεις να χρησιμοποιήσεις κάποια γλώσσα προγραμματισμού για να δημιουργήσεις πρόγραμμα κι εκεί πρέπει (μπορείς) να δηλώσεις το μήκος τους ώστε να μην προκύψει υπερχείλιση. Όπως και να 'χει καταλαβαίνεις ότι δεν μπορείς να κάνεις ολίσθηση προς τ' αριστερά επ' άπειρον.

Φιλικά,
Σωτήρης

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Re: ΟΛΙΣΘΗΣΗ ΠΡΟΣ ΤΑ ΑΡΙΣΤΕΡΑ
« Απάντηση #3 στις: 05 Δεκ 2005, 03:55:32 μμ »

Ας υποθέσουμε οτι στον υπολογιστή μας για την απεικόνιση των αριθμών χρησιμοποιείται 1 byte (8bits).

Ο αριθμός 8 είναι το 00001000 στο δυαδικό σύστημα.

Αν προσθέσεις ένα μηδέν από δεξιά (και πετάξεις το περισσευούμενο bit από αριστερά) τότε στο δυαδικό σύστημα έχεις τον αριθμό 00010000 που στο δεκαδικό είναι το 16 (έγινε διπλασσιασμός)

Αν προσθέσεις ένα μηδέν από αριστερά(και πετάξεις το περισσευούμενο bit από δεξιά) τότε στο δυαδικό σύστημα έχεις τον αριθμό 00000100 που στο δεκαδικό είναι το 4 (έγινε υπο-διπλασσιασμός)

Αυτά λέει στο πλαίσιο του παραδείγματος 12, αλλά μην δίνεις και μεγάλο βάρος ως θεωρία. Το παράδειγμα 12 (πολλαπλασιασμός αλα ρωσικά) έχει μπει δυο φορές στα εσπερινά αλλά ως πίνακας τιμών και ποτέ δεν ζητήθηκε να αναπτυχθεί. Να περιμένουμε κάτι άλλο;

Με εκτίμηση,