Δημοσιεύτηκε: 29 Ιουν 2011, 22:26
από stamatiou
migf1 έγραψε:Είναι αρκετά προχωρημένα αυτά, γιατί δουλεύεις απευθείας πάνω στα bits ενός byte της μνήμης. Έχουν να κάνουν με truth tables, λογικές πύλες, κλπ (με τα οποία είναι εξοικειωμένοι οι μηχανικοί).

Σε ποιο υψηλό επίπεδο (πιο high level εννοώ, δηλαδή πιο εύκολο) χρησιμοποιούνται συνήθως συνδυασμένα με unions για το σετάρισμα κι έλεγχο των λεγόμενων bit-flags, που ουσιαστικά χρησιμοποιούν τα bits ενός ή περισσοτέρων bytes ως boolean flags (αν το bit είναι σεταρισμένο έχει τιμή 1 κι εκλαμβάνεται ως TRUE, αλλιώς έχει τιμή 0 και εκλαμβάνεται ως FALSE).

Για να ελέγξεις αν ένα ή περισσότερα bits είναι ταυτόχρονα σεταρισμένα ή όχι, χρησιμοποιείς bitwise operations: | (OR), & (AND), ~ (NOT), ^ (XOR) ενώ μπορείς να κάνεις και μετακινήσεις bits με τους bitshift operators: << (shift left) και >> (shift right).

Σε γενικές γραμμές δεν νομίζω πως χρειάζεται να ανησυχείς από τόσο νωρίς για αυτά. Ενδεχομένως να μη τα χρειαστείς και ποτέ (αν και τα bitflags είναι αρκετά συνηθισμένα, ιδιαίτερα στην υλοποίηση γραφικών περιβαλλόντων .. GUI).

ΥΓ. Αν ωστόσο επιμένεις, ρίξε μια γρήγορη ματιά π.χ. εδώ: http://www.edcc.edu/faculty/paul.bladek ... ations.htm

Κάτι πρέπει να έπαθε το link! πριν λίγο μπήκα να το τσεκάρω, όλα μια χαρά, αλλά τώρα δεν μου το ανοίγει!