Περιγραφή

Τόσο στο Arduino Uno όσο και σε άλλες βασιζόμενες πλακέτες του τύπου ATMega, οι ανυπόγραφοι ακέραιοι είναι ακριβώς ίδιοι με τους ακέραιους με την διαφορά ότι αυτοί αποθηκεύουν μια τιμή των 2 byte. Ωστόσο, αντί να αποθηκεύουν τους αρνητικούς αριθμούς, αυτοί αποθηκεύουν μόνο τις θετικές τιμές. Έτσι αυτό δίνει ένα εύρος τιμών που ξεκινά από το 0 και φτάνει μέχρι το 65.535 (2^16) – 1).

Το Arduino Due αποθηκεύει τιμές των 4 byte (32-bit), οι οποίες κυμαίνονται από το 0 έως το 4.294.967.295 (2 ^ 32 – 1).

Η διαφορά μεταξύ των ανυπόγραφων ακεραίων και των υπογεγραμμένων ακεραίων, έγκειται στον τρόπο με τον οποίο ερμηνεύεται το υψηλότερο bit (MSB), το οποίο μερικές φορές αναφέρεται και ως bit συμβολισμού. Στον τύπο ακεραίων του Arduino (οι οποίοι είναι υπογεγραμμένοι), εάν η υψηλότερη τιμή του bit είναι το “1”, τότε αυτός ο αριθμός ερμηνεύεται ως ένας αρνητικός αριθμός και τα άλλα 15 bits ερμηνεύονται μέσω του συμπληρώματος ως προς δύο.

Παράδειγμα

unsigned int ledPin = 13;

Σύνταξη

unsigned int var = val;

 var: το όνομα του ανυπόγραφου ακεραίου της μεταβλητής σας.
val: την τιμή που εκχωρείτε σε αυτή τη μεταβλητή.

Συμβουλές για τον κώδικα

Όταν οι μεταβλητές δημιουργούνται για να υπερβούν τη μέγιστη χωρητικότητά τους, τότε αυτές θα «αναποδογυρίσουν» πίσω στην ελάχιστη χωρητικότητα τους. Σημειώστε ότι αυτό συμβαίνει και στις δύο κατευθύνσεις.

   unsigned int x
   x = 0;
   x = x - 1;       // x now contains 65535 - rolls over in neg direction
   x = x + 1;       // x now contains 0 - rolls over

Επιστροφή στην σελίδα Παραπομπές Γλώσσας