Δημοσιεύτηκε: 11 Δεκ 2008, 01:51
από gyros
Παίδες σας ευχαριστώ για τον κόπο σας. Μόλις βρήκα που είναι το λάθος μου. Όπως πάντα δεν ήταν κανένα συντακτικό λάθος ή λάθος του compiler. Ήταν λογικό σφάλμα. Εκεί που ορίζω τον δεκαεξαδικό 0x8000000000 θέλει 9 μηδενικά γιατί μιλάμε για 5-byte αριθμούς που περιέχουν 40 bit. Άρα αν κάθε 4 bit αντιστοιχούν σε έναν δεκαεξαδικό χαρακτήρα, τότε 40 / 4 = 10 χαρακτήρες δεκαεξαδικού, άρα 0x8000000000 και όχι 0x8000000 που είχα βάλει εγώ :roll: :? :shock: :oops: :| .
Πάντως όπως και να έχει σας ευχαριστώ για τον χρόνο σας, που σας έφαγα με ένα τόσο γελείο λάθος.

Όπως simosx έχεις δίκιο για το L μόνο που θέλει δύο LL ,δηλαδή long long int CRC = 0x104C11DB7LL; και βγάζει την προειδοποίηση του compiler. Αλλά και χωρίς το LL κάνει κανονικά την καταχώρηση μόνο που σου βγάζει warning o compiler.

Τι μπορεί να σου κάνει ένα τόσο δα μικρό λαθάκι από απροσεξία :lol: :lol: :lol: :lol: