bxenos Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 στο char *b, κάνεις shift ας πούμε 4 bits αριστερά και μετά xor με έναν int. δες τώρα αν το char *b αρχικά ήταν 010010011 και θέλεις να περάσεις 4bit Του data που έχει τιμή 16 (δηλαδή δίνεις 5 bit, κατα λάθος ή όχι δεν έχει σημασία, διότι η συνάρτηση set δεν φροντίζει να περιορίσει το πρόβλημα αυτό): κάνεις *b = *b << 4 (σωστά, τωρα τα 4 "δεξιά" bits είναι μηδενικά) *b = *b ^ data, δηλαδή 00110000 XOR 10000 και το αποτέλεσμα είναι 00100000 το παραπάνω είναι σκέψη που αφορά την πρόβλεψη προβλημάτων. Αν τέτοια μικρά "θέματα" μένουν αλυτα, όταν το πρόγραμμα μεγαλώσει είναι νάρκες έτοιμες να εκραγουν...
bnvdarklord Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 Μμμ εχεις δίκιο(αν και στην εφαρμογή που το προορίζω μαλλον δεν θα υπαρξει θεμα, αλλα και παλι...) Τωρα μενει να το φτιαξω για περιπτώσεις που ο μικρός buffer δεν γεμίζει ακριβώς... Μηπως σκέφτομαι πολύπλοκα; Γενικά παντως είναι ενα δύσκολο πρόβλημα :|
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.