THMMY.gr

Μαθήματα Βασικού Κύκλου => Συστήματα Υπολογιστών => Topic started by: MARIOS on August 08, 2007, 13:43:36 pm



Title: Διάταξη Byte
Post by: MARIOS on August 08, 2007, 13:43:36 pm
Παιδιά έχω ένα πρόβλημα με το συγκεκριμένο κομμάτι του βιβλίου!!

Μέσα στο βιβλίο δίνει ένα παράδειγμα και λέει ότι θέλουμε να αντιγράψουμε μια εγγραφή αρχείου από μηχανή μεγάλου άκρου σε μηχανή μικρού άκρου!!!
Όλα ωραία και καλά όταν είναι η εγγραφή στην μηχανή μεγάλου άκρου (εκτός από το ότι γράφει το 260 σε δύο byte.Στο ένα γράφει 1 και στο άλλο 4 και λέει στο βιβλίο (260=1*256+4)).
Όταν κάνει την αντιγραφή λέει πως τα byte στους χαρακτήρες αντιστράφηκαν σωστά αλλά εμείς δεν θέλαμε την αντιστροφή των byte των αριθμών και ο αριθμός 21 θα εμφανιστεί κατά την εκτύπωση ως 21*2^24.

Μεγάλου άκρου             
διεύθυνση
0   |J|I|M| |
4   |S|M|I|T|
8   |H|0|0|0|
12 |0|0|0|21|
16 |0|0|1|4|

Μικρού άκρου                                   
              διεύθυνση
| |M|I|J|     0
|T|I|M|S|   4
|0|0|0|H|   8
|0|0|0|21| 12
|0|0|1|4|   16

Μεταφορά από μεγάλου σε μικρού άκρου                    <-Λάθος
               διεύθυνση
| |M|I|J|     0
|T|I|M|S|   4
|0|0|0|H|   8
|21|0|0|0| 12
|4|1|0|0|   16


Και λοιπόν οι ερωτήσεις μου είναι οι εξής:

α)γιατί το 260 το γράφει σαν 1 και τέσσερα??? (τελευταία γραμμή)
β)Γιατί κατα την λανθασμένη μεταφορά το 21 θα εμφανιστεί κατά την εκτύπωση σαν 21*2^24?????


Title: Re: Διάταξη Byte
Post by: Megawatt on August 08, 2007, 13:57:34 pm
Αυτο θυμαμαι το ειχα καταλαβει, αλλά τώρα δεν μπορώ να σε βοηθησω επειδή δεν εχω το βιβλιο μαζι μου! - Το δωσα ... :'(
Σου κανει κοπο να σκαναρεις τις 3 σελιδες και να μου τις στειλεις? (έχεις σκανερ καταρχην?) (Nα θυμηθώ λιγο τα γειτονικα χωρία )


Title: Re: Διάταξη Byte
Post by: MARIOS on August 08, 2007, 14:01:46 pm
περίμενε


Title: Re: Διάταξη Byte
Post by: MARIOS on August 08, 2007, 14:14:06 pm
Ορίστε


Title: Re: Διάταξη Byte
Post by: Megawatt on August 08, 2007, 14:53:14 pm
Και λοιπόν οι ερωτήσεις μου είναι οι εξής:

α)γιατί το 260 το γράφει σαν 1 και τέσσερα??? (τελευταία γραμμή)
Η μηχανη στην οποια εργαζομαστε ειναι των 32bit και αρα οι αριθμοι και τα συμβολα αναπαριστανται με δυαδικους αριθμους των 32bit.
Τα 32bit χωριζονται σε 4 byte των 8bit.
Στην μικρού άκρου αριθμιση, το byte 0 ειναι και το byte της "μικροτερης σημασιας" και να τι εννοώ:
Το byte 0 κατεχει τις θεσεις των bit απο 20 μέχρι 27 .
Το byte 1 κατεχει τις θεσεις των bit απο 28 μέχρι 215.
Το byte 2 κατεχει τις θεσεις των bit απο 216 μέχρι 223.
Το byte 3 κατεχει τις θεσεις των bit απο 224 μέχρι 231.
    
Το  260 δεν "χωραει" σε 8 bit δλδ ένα byte, αφου 8 ασσοι=255 και άρα το αναπαριστα με δυο byte : το byte 1 που θα εχει ολα τα bit μηδεν εκτος απο το τελευταιο που θα ειναι άσσος και θα κατεχει την τιμη 2 εις την 8=256 οποτε το συμβολιζει με απλο: 1 αντι να γραψει: 0000001 ( 7 μηδενικα και ένας άσσος στο τελος ) και το byte 0 που το συμβολιζει με το δεκαδικο 4 αντι να γραψει 00000100 ().

β)Γιατί κατα την λανθασμένη μεταφορά το 21 θα εμφανιστεί κατά την εκτύπωση σαν 21*2^24?????
Το  21 (το δεκαδικο) θα εμφανιστει σαν 21*2^24 εννοώντας ότι θα κατεχει τις  θεσεις του byte 3, δηλαδη θα κατεχει τις θεσεις των bit απο 224 μέχρι 231. Εννοει δηλαδη ότι το 21 δεκαδικο που ειναι το 00010101 στο δυαδικο, θα έχει το τερμα δεξια άσσο του, στην θεση εκεινη του συνολικου 32bit-αριθμου που εχει τιμή  224  αφού το byte 3 κατεχει τις θεσεις των bit απο 224 μέχρι 231.

Δηλαδη, τα λεει λιγο περιληπτικα για να μην γραφει πολλά και ισως γιαυτο δεν γινεται τοσο κατανοητος.
Ελπιζω τώρα να καταλαβες  :)