FatCap Δημοσ. 28 Απριλίου 2016 Δημοσ. 28 Απριλίου 2016 Χαιρεται! Προσφατα ξεκινησα να ασχολουμαι με τον προγραμματισμο συγκεκριμενα με την python. Εχω ξεκινησει να διαβαζω το "A byte of python". Θελω να ρωτησω που μπορει να μας βοηθησει το να κανουμε πραξεις με αυτους τους τελεστες στο δυαδικο συστημα &,^,Ι μεσα σε ενα προγραμμα; Γενικα γιατι πρεπει να ξερουμε καποια πραγματα στο binary code; 1
M2000 Δημοσ. 28 Απριλίου 2016 Δημοσ. 28 Απριλίου 2016 (επεξεργασμένο) Δεν είναι Binary code το να χρησιμοποιείς το δυαδικό. Το χρησιμοποιείς αριθμητικά. Το Binary code είναι opcodes για τον επεξεργαστή. Τι σε βοηθάει όμως; Πολλές φόρες χρειάζεται να δώσεις νούμερο που έχει σημαίες, δηλαδή bit που σημαίνουν κάτι. Σε 8 bit έχεις οκτώ σημαίες. π.χ. δες την συνάρτηση DrawText των Windows, η οποία μπορεί να κληθεί από οποιαδήποτε πρόγραμμα https://msdn.microsoft.com/en-us/library/windows/desktop/dd162498%28v=vs.85%29.aspx δες εδώ πως χρησιμοποιείται: https://support.microsoft.com/en-us/kb/154517 Παρατηρούμε ότι η παράμετρος uFormat είναι τύπου uint. Και εκεί όλα τα bit είναι σημαίες. Στον δεύτερο σύνδεσμο αναφέρονται μερικές. Π.χ. DT_WORDBREAK = &H10 και το &Η10 μπορείς να το δεις σε άλλη γλώσσα ως το 0x10 που είναι το 16. (1*2^4+0*2^0) Για να χειριστούμε τις σημαίες έχουμε τους χειριστές AND και OR. Π.χ. αν θέλουμε να δούμε αν υπάρχει το 0x10 τότε κάνουμε AND με αυτό τον αριθμό. Όπου έχει 0 θα πάρουμε 0 και αν έχει 0 στη θέση του 5 bit τότε θα πάρουμε 0. Με το OR προσθέτουμε σημαίες, γιατί στην ουσία όσες φορές και να προσθέσουμε το 0x10 με την OR δεν θα αλλάξει παρά μόνο μια φορά το bit 5 (την πρώτη αν ήταν 0 αλλιώς ούτε αυτήν). Το Xor δεν χρησιμοποιείται στις σημαίες, αλλά μπορεί να μας δώσει έναν απλό τρόπο "κλειδώματος", γιατί με κλειδί Α αν κάνουμε στο Β το Α XOR B θα πάρουμε έστω το Γ το οποίο με Γ XOR A θα πάρουμε το αρχικό B. Μπορεί κάποιος άλλος να προσθέσει και άλλες χρησιμότητες, δεν τελειώνουν εδώ. Φαίνεται ξεκάθαρα ότι μιλάμε για αριθμητική χρήση, αλλά το τελικό προϊόν ποικίλει, από σημαίες για να τυπώσουμε με κάποιο τρόπο γράμματα, όπως στην DrawText, μέχρι τη κωδικοποίηση μηνυμάτων, Επεξ/σία 28 Απριλίου 2016 από M2000 1
defacer Δημοσ. 28 Απριλίου 2016 Δημοσ. 28 Απριλίου 2016 Θελω να ρωτησω που μπορει να μας βοηθησει το να κανουμε πραξεις με αυτους τους τελεστες στο δυαδικο συστημα &,^,Ι μεσα σε ενα προγραμμα; Γενικα γιατι πρεπει να ξερουμε καποια πραγματα στο binary code; Οι bitwise τελεστές δουλεύουν σε κάθε ένα από τα bits των (αριθμητικών τιμών) εισόδων τους ξεχωριστά. Οι αριθμητικές τιμές έχουν γενικά "πολλά" bits διαθέσιμα. Επομένως, αν έχεις λόγο να θέλεις να αναπαραστήσεις κάποιες τιμές ως μονά ή ομάδες από bits, μπορείς εύκολα να τις "πακετάρεις" όλες μαζί σε μια αριθμητική τιμή και να κάνεις κάποιες πράξεις πάνω σ' αυτές μαζικά, εύκολα και γρήγορα. Εκεί είναι που μπορεί να βοηθήσει. Για παράδειγμα δες την έννοια του bitmask και του bitfield, που είναι αυτό που περιέγραψα παραπάνω. 1
FatCap Δημοσ. 28 Απριλίου 2016 Μέλος Δημοσ. 28 Απριλίου 2016 Ευχαριστω πολυ για τις απαντησεις σας!! 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα