Δημοσιεύτηκε: 11 Δεκ 2008, 01:51
Παίδες σας ευχαριστώ για τον κόπο σας. Μόλις βρήκα που είναι το λάθος μου. Όπως πάντα δεν ήταν κανένα συντακτικό λάθος ή λάθος του compiler. Ήταν λογικό σφάλμα. Εκεί που ορίζω τον δεκαεξαδικό 0x8000000000 θέλει 9 μηδενικά γιατί μιλάμε για 5-byte αριθμούς που περιέχουν 40 bit. Άρα αν κάθε 4 bit αντιστοιχούν σε έναν δεκαεξαδικό χαρακτήρα, τότε 40 / 4 = 10 χαρακτήρες δεκαεξαδικού, άρα 0x8000000000 και όχι 0x8000000 που είχα βάλει εγώ
.
Πάντως όπως και να έχει σας ευχαριστώ για τον χρόνο σας, που σας έφαγα με ένα τόσο γελείο λάθος.
Όπως simosx έχεις δίκιο για το L μόνο που θέλει δύο LL ,δηλαδή long long int CRC = 0x104C11DB7LL; και βγάζει την προειδοποίηση του compiler. Αλλά και χωρίς το LL κάνει κανονικά την καταχώρηση μόνο που σου βγάζει warning o compiler.
Τι μπορεί να σου κάνει ένα τόσο δα μικρό λαθάκι από απροσεξία

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