Character
Kích thước | Số nguyên có dấu | Số nguyên không dấu |
---|---|---|
1 byte | char | unsigned char |
1 byte | ... | byte |
2 byte | short | word |
2 byte | int | unsigned int |
4 byte | long | unsigned long |
Char
Chức năng
_ Là một kiểu dữ liệu được sử dụng để lưu trữ giá trị của 1 ký tự.
_ Chữ ký tự được viết trong dấu ngoặc đơn (' ')
, ví dụ như 'A'
. Đối với nhiều ký tự - chuỗi, sử dụng dấu ngoặc kép (" ")
, ví dụ như "ABC"
.
_ Tuy nhiên, các ký tự được lưu trữ dưới dạng số. Bạn có thể xem mã hóa cụ thể trong Bảng mã ASCII ở dưới.
_ Điều này nghĩa là có thể thực hiện phép tính trên các ký tự. Ví dụ, cho thực hiện phép tính 'A' + 1
kết quả sẽ là 'B'
hoặc 66
, vì giá trị DEC trong ASCII của kí tự 'A'
là 65
.
_ Mỗi biến char
chiếm 1 byte bộ nhớ, có thể thể hiện 256 (28) giá trị khác nhau.
_ Một char
lưu trữ một số nguyên từ -128 (-27) đến 127 (27-1).
Cú pháp
- char var = val;
Tham số
- var - tên biến.
- val - giá trị để "gán" cho biến đó.
Code mẫu
Mã này cho biết cách sử dụng kiểu dữ liệu char
.
char var; /* ----------------------------------------------------- */ void setup() { Serial.begin(115200); // Mở cổng Serial Serial.print("Kích thước dữ liệu CHAR: "); Serial.print(sizeof(var)); Serial.println(" byte."); Serial.println("--- --- --- --- ---"); var = 127; Serial.print("Gán CHAR giá trị 127: "); Serial.println(var, DEC); // Xem ở dạng số var++; Serial.print("Tăng CHAR lên 1 đơn vị: "); Serial.println(var, DEC); // Xem ở dạng số Serial.println("--- --- --- --- ---"); var = -128; Serial.print("Gán CHAR giá trị -128: "); Serial.println(var, DEC); // Xem ở dạng số var--; Serial.print("Giảm CHAR xuống 1 đơn vị: "); Serial.println(var, DEC); // Xem ở dạng số Serial.println("--- --- --- --- ---"); Serial.println("In toàn bộ kí tự trong bảng mã ASCII:"); for (int i = -128; i <= 127; i++) { var = i; Serial.print("DEC: "); Serial.print(i); Serial.print(" - Char: "); Serial.println(var); } } /* ----------------------------------------------------- */ void loop() { // Không làm gì cả! }
Unsigned Char
Chức năng
_ Bạn chỉ nên sử dụng char
để lưu trữ các "ký tự".
_ Đối với loại dữ liệu 1 byte cho số nguyên không dấu, hãy sử dụng loại dữ liệu unsigned char
hoặc byte
.
_ Tuy nhiên, để thống nhất phong cách lập trình Arduino, kiểu dữ liệu byte
nên được ưu tiên.
Cú pháp
- unsigned char var = val;
Tham số
- var - tên biến.
- val - giá trị để "gán" cho biến đó.
Code mẫu
Mã này cho biết cách sử dụng kiểu dữ liệu unsigned char
.
unsigned char var; /* ----------------------------------------------------- */ void setup() { Serial.begin(115200); // Mở cổng Serial Serial.print("Kích thước dữ liệu UNSIGNED CHAR: "); Serial.print(sizeof(var)); Serial.println(" byte."); Serial.println("--- --- --- --- ---"); var = 255; Serial.print("Gán UNSIGNED CHAR giá trị 255: "); Serial.println(var); var++; Serial.print("Tăng UNSIGNED CHAR lên 1 đơn vị: "); Serial.println(var); Serial.println("--- --- --- --- ---"); var = 0; Serial.print("Gán UNSIGNED CHAR giá trị 0: "); Serial.println(var); var--; Serial.print("Giảm UNSIGNED CHAR xuống 1 đơn vị: "); Serial.println(var); } /* ----------------------------------------------------- */ void loop() { // Không làm gì cả! }
Bảng mã ASCII
Giá trị (decimal) | Ký tự | Giá trị (decimal) | Ký tự | Giá trị (decimal) | Ký tự |
---|---|---|---|---|---|
32 | khoảng trắng | 64 | @ | 96 | ` |
33 | ! | 65 | A | 97 | a |
34 | " | 66 | B | 98 | b |
35 | # | 67 | C | 99 | c |
36 | $ | 68 | D | 100 | d |
37 | % | 69 | E | 101 | e |
38 | & | 70 | F | 102 | f |
39 | ' | 71 | G | 103 | g |
40 | ( | 72 | H | 104 | h |
41 | ) | 73 | I | 105 | i |
42 | * | 74 | J | 106 | j |
43 | + | 75 | K | 107 | k |
44 | , | 76 | L | 108 | l |
45 | - | 77 | M | 109 | m |
46 | . | 78 | N | 110 | n |
47 | / | 79 | O | 111 | o |
48 | 0 | 80 | P | 112 | p |
49 | 1 | 81 | Q | 113 | q |
50 | 2 | 82 | R | 114 | r |
51 | 3 | 83 | S | 115 | s |
52 | 4 | 84 | T | 116 | t |
53 | 5 | 85 | U | 117 | u |
54 | 6 | 86 | V | 118 | v |
55 | 7 | 87 | W | 119 | w |
56 | 8 | 88 | X | 120 | x |
57 | 9 | 89 | Y | 121 | y |
58 | : | 90 | Z | 122 | z |
59 | ; | 91 | [ | 123 | { |
60 | < | 92 | \ | 124 | | |
61 | = | 93 | ] | 125 | } |
62 | > | 94 | ^ | 126 | ~ |
63 | ? | 95 | _ |