The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Τύποι που περιέχουν ακέραιους αριθμούς: char, short, int, long, long long
Ας ρίξουμε μια ματιά σε μερικά παραδείγματα:
char cvar = 50;
char cvar = 50;
σύντομο svar = 50;
int ivar = 50;
μακριά lvar1 = 50;
μακριά lvar2 = 50;
Βασικοί Αριθμητικοί Τελεστές:
Οι περισσότεροι είναι εξοικειωμένοι με τους βασικούς αριθμητικούς τελεστές και τη σειρά προτεραιότητας: + , - , * , /
Ακολουθούν ορισμένα παραδείγματα για το πώς να χρησιμοποιήσετε τον τελεστή Unary: ++ και --:
| Εκφραση | Ισοδύναμο με | Επίσης ισοδύναμο με |
|---|---|---|
| μεταβλητή cvr += 5; | cvar = cvar + 5; | |
| ++cvar; | cvar++; | cvar = cvar + 1; |
| --cvar; | cvar--; | cvar = cvar - 1; |
Προσοχή στη μεταβλητή++ έναντι της μεταβλητής ++!
++μεταβλητή
ακέραιος x = 10, y = 20;
X = ++y;
Σημείωση: μετά από αυτήν την πράξη: X = 21, και Y επίσης = 21.
μεταβλητή++
ακέραιος x = 10, y = 20;
X = y++;
Σημείωση: μετά από αυτήν την πράξη: X = 20 και Y = 21.
Σύγκριση ακέραιου τύπου δεδομένων
Υπάρχει μια ομάδα ή τύπος δεδομένων που επιτρέπει τόσο θετική όσο και αρνητική τιμή – «υπογεγραμμένο». Ωστόσο, δεν χρειάζεται να το διευκρινίσετε αυτό, καθώς είναι έμμεσο. Δείτε παρακάτω:
| Τύπος δεδομένων | Μικρότερη τιμή | Μεγαλύτερη τιμή |
|---|---|---|
| απανθρακώνω | -2 7 ή -128 | 2 7 - 1 ή 127 |
| μικρός | -2 15 ή -32.768 | 2 15 - 1 ή 32.767 |
| εσωτ. | -2 31 ή -2.147.483.648 | 2 31 – 1 ή 2.147.483.647 |
| μακρύς | -2 31 ή -2.147.483.648 | 2 31 – 1 ή 2.147.483.647 |
| μακρύς μακρύς | -2 63 ή -9.223.372.036.854.775.808 | 2 63 – 1 ή 9.223.372.036.854.775.807 |
Υπάρχει μια ομάδα ή τύπος δεδομένων που επιτρέπει μόνο θετική τιμή - "ανυπόγραφο".
| Τύπος δεδομένων | Μικρότερη τιμή | Μεγαλύτερη τιμή |
|---|---|---|
| ανυπόγραφος χαρακτήρας | 0 | 2 8 - 1 ή 255 |
| ανυπόγραφο σύντομο | 0 | 2 16 - 1 ή 65.535 |
| μη υπογεγραμμένο ακέραιο | 0 | 2 32 – 1 ή 4.294.967.295 |
| ανυπόγραφο μακρύ | 0 | 2 32 – 1 ή 4.294.967.295 |
| ανυπόγραφο long long | 0 | 2 64 – 1 ή 18.446.744.073.709.551.615 |
Πώς επαληθεύετε το μέγεθος των δεδομένων;
Προς το παρόν, θα πρέπει να γνωρίζετε τον τελεστή sizeof(). Αυτό παρέχει τη μονάδα αποθήκευσης μνήμης που ονομάζεται «bytes» – η οποία θα καλυφθεί εν μέρει στην επόμενη ενότητα.
Δείγμα που σας λέει τον αριθμό των byte που πρέπει να πληκτρολογήσετε χρησιμοποιώντας τον τελεστή sizeof(). Δοκιμάστε το αυτό για να τα επαληθεύσετε μόνοι σας. Εάν αλλάξετε χειριστήριο, μπορείτε πάντα να κάνετε τα εξής για επαλήθευση.
Brain.Screen.setFont(fontType::mono30);
Brain.Screen.printAt(1, 20, "το char έχει %d byte", sizeof(char));
Brain.Screen.printAt(1, 50, "το short έχει %d byte", sizeof(short));
Brain.Screen.printAt(1, 80, "το int έχει %d byte", sizeof(int));
Brain.Screen.printAt(1, 110, "το long έχει %d byte", sizeof(long));
Brain.Screen.printAt(1, 140, "το long long έχει %d byte", sizeof(long long));
Brain.Screen.printAt(1, 170, "το float έχει %d byte", sizeof(float));
Brain.Screen.printAt(1, 200, "το double έχει %d byte", sizeof(double));
Κείμενο που εκτυπώθηκε στην οθόνη V5 Brain:
Ο char έχει 1 bytes
ο short έχει 2 bytes
int έχει 4 bytes
long έχει 4 bytes
ο long έχει 8 bytes
ο float έχει 4 bytes
double έχει 8 bytes.Τι σημαίνει ένα byte;
Ένα «Byte» είναι μια τυπική μονάδα αποθήκευσης δεδομένων.
Ένα Byte = 8 bits. Ένα bit είναι η μικρότερη μονάδα μνήμης που μπορεί να έχει μόνο την τιμή 1 και 0 (δυαδική τιμή). Αλλά, η μικρότερη μονάδα μνήμης που μπορείτε να αποκτήσετε από το σύστημα είναι 1 byte, επομένως δεν μπορείτε να ζητήσετε 1,5 byte, κ.λπ.
Ας ρίξουμε μια ματιά στο char. Είναι αρκετά κοντό για να εμφανίζεται εύκολα.
Αν είναι όλο γεμάτο με 1, προκύπτει 28-1. Αυτή η τιμή θα πρέπει να είναι η μέγιστη τιμή που πρέπει να περιέχει ο όρος "unsigned char".
Το σύστημα δεσμεύει το bit υψηλότερης τάξης προκειμένου να δώσει αρνητική τιμή. Έτσι, η μέγιστη τιμή για έναν "char" κυμαίνεται από -128 έως 127. Ωστόσο, η χωρητικότητα εξακολουθεί να είναι η ίδια με τον "unsigned char" παρά τη διαφορά στο εύρος δεδομένων.
Στον υπολογιστή, χρησιμοποιεί μια λειτουργία που ονομάζεται Συμπλήρωμα ως προς το Δύο. Αυτό αποτελεί μέρος των θεμάτων στην ενότητα Λειτουργία Bitwise, η οποία δεν εμπίπτει στο πεδίο εφαρμογής αυτού του εγγράφου. Περισσότερα για αυτό το θέμα θα συζητηθούν σε άλλο έγγραφο.
Ποια είναι η διαφορά μεταξύ char και int;
Ακολουθούν μερικές συνηθισμένες χρήσεις των "char" και "int":
char var1 = '9';
int var2 = 9;
Είναι μια κοινή εσφαλμένη αντίληψη ότι το "char" μπορεί να περιέχει μόνο σύμβολα όπως 'a', 'b' ή '9'. Αυτό είναι λανθασμένο.
Στην πραγματικότητα, ο τύπος "char" είναι ο ίδιος με τον τύπο "int", εκτός από το ότι η χωρητικότητα του char είναι μόνο 1 byte και η χωρητικότητα του int είναι 4 byte. Έτσι, το εύρος μεγέθους δεδομένων είναι διαφορετικό μεταξύ των δύο. Μπορείτε να το δείτε αυτό στον παραπάνω πίνακα εύρους δεδομένων.
Τα ακόλουθα τμήματα κώδικα θα σας δώσουν μια πιο σαφή εικόνα των char και int.
int iX = '0';
char cX1 = 49;
char cX2 = 50;
Brain.Screen.printAt(3, 20, "int αναπαράσταση του '%c' = %d",iX, iX);
Brain.Screen.printAt(3, 50, "int αναπαράσταση του '%c' = %d",cX1, cX1);
Brain.Screen.printAt(3, 80, "int αναπαράσταση του '%c' = %d",cX2, cX2);
Brain.Screen.printAt(3, 140, "Έτσι '%c' - '%c' = %d ", cX2, iX, cX2 - cX1);
Παραγωγή:
int αναπαράσταση του '0' = 48
int αναπαράσταση του '1' = 49
int αναπαράσταση του '2' = 50
Άρα '2' – '0' = 1
Μπορεί να αναρωτιέστε: Γιατί το '0' δείχνει 48;
Αυτό θα οδηγήσει στα θέματα που ονομάζονται μετατροπή «Κώδικας ASCII». Το πρότυπο ASCII είναι ένα από τα σημαντικότερα ορόσημα του IEEE που δημοσιεύθηκε το 1963. Αυτό είναι εκτός του πεδίου εφαρμογής αυτού του άρθρου. Σας ενθαρρύνουμε να αναζητήσετε τον Πίνακα Κωδικών ASCII στο διαδίκτυο. Θα βρείτε πληθώρα πληροφοριών στο διαδίκτυο σχετικά με τον πίνακα κωδικών ASCII.