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.
Các kiểu chứa số nguyên: char, short, int, long, long long
Chúng ta hãy xem một số ví dụ:
char cvar = 50; ký tự cvar = 50; svar ngắn = 50; int ivar = 50; lvar dài1 = 50; lvar2 dài = 50;
Các toán tử số học cơ bản:
Hầu hết đều quen thuộc với các toán tử số học cơ bản và thứ tự ưu tiên: + , -, *, /
Dưới đây là một số ví dụ về cách sử dụng toán tử Một ngôi: ++ và --:
Sự biểu lộ | Tương đương với | Cũng tương đương với |
cvar += 5; | cvar = cvar + 5; | |
++cvar; | cvar++; | cvar = cvar + 1; |
--cvar; | cvar--; | cvar = cvar - 1; |
Hãy cẩn thận với biến ++ so với biến ++!
++ biến
int x = 10, y = 20; X = ++y;
Lưu ý: sau thao tác này: X = 21 và Y cũng = 21.
biến++
int x = 10, y = 20; X = y++;
Lưu ý: sau thao tác này: X = 20 và Y = 21.
So sánh kiểu dữ liệu số nguyên
Có một nhóm hoặc kiểu dữ liệu cho phép cả giá trị dương và âm – “đã ký”. Tuy nhiên, bạn không cần phải chỉ định điều đó vì nó là ngầm định. Xem bên dưới:
Loại dữ liệu | Giá trị nhỏ nhất | Giá trị lớn nhất |
ký tự | -2 7 hoặc -128 | 2 7 - 1 hoặc 127 |
ngắn | -2 15 hoặc -32.768 | 2 15 - 1 hoặc 32.767 |
int | -2 31 hoặc -2.147.483.648 | 2 31 – 1 hoặc 2.147.483.647 |
dài | -2 31 hoặc -2.147.483.648 | 2 31 – 1 hoặc 2.147.483.647 |
dài dài | -2 63 hoặc -9,223,372,036,854,775,808 | 2 63 – 1 hoặc 9.223.372.036.854.775.807 |
Có một nhóm hoặc kiểu dữ liệu chỉ cho phép giá trị dương – “không dấu”.
Loại dữ liệu | Giá trị nhỏ nhất | Giá trị lớn nhất |
ký tự không dấu | 0 | 2 8 - 1 hoặc 255 |
ngắn không dấu | 0 | 2 16 - 1 hoặc 65.535 |
int không dấu | 0 | 2 32 – 1 hoặc 4.294.967.295 |
dài không dấu | 0 | 2 32 – 1 hoặc 4.294.967.295 |
không dấu dài dài | 0 | 2 64 – 1 hoặc 18.446.744.073.709.551.615 |
Làm thế nào để bạn xác minh kích thước dữ liệu?
Hiện tại, bạn nên biết toán tử sizeof( )
. Điều này cung cấp đơn vị lưu trữ bộ nhớ được gọi là “byte” – sẽ được đề cập một chút trong phần tiếp theo.
Mẫu cho bạn biết số byte nên nhập bằng toán tử sizeof()
. Hãy thử điều này để tự mình xác minh chúng. Nếu bạn đổi sang bộ điều khiển khác, bạn luôn có thể thực hiện các thao tác sau để xác minh.
Brain.Screen.setFont(fontType::mono30); Brain.Screen.printAt(1, 20,"char có %d byte", sizeof(char)); Brain.Screen.printAt(1, 50,"ngắn có %d byte", sizeof(ngắn)); Brain.Screen.printAt(1, 80,"int có %d byte", sizeof(int)); Brain.Screen.printAt(1, 110, "long có %d byte", sizeof(long)); Brain.Screen.printAt(1, 140, "long long có %d byte", sizeof(long long)); Brain.Screen.printAt(1, 170, "float có %d byte", sizeof(float)); Brain.Screen.printAt(1, 200, "double có %d byte", sizeof(double));
Một byte có nghĩa là gì?
“Byte” là đơn vị lưu trữ dữ liệu tiêu chuẩn.
Một Byte = 8 bit. Một bit là đơn vị bộ nhớ nhỏ nhất chỉ có thể có giá trị 1 và 0 (giá trị nhị phân). Tuy nhiên, đơn vị bộ nhớ nhỏ nhất bạn có thể thu được từ hệ thống là 1 byte; vì vậy bạn không thể yêu cầu 1,5 byte, v.v.
Chúng ta hãy nhìn vào char. Nó đủ ngắn để hiển thị dễ dàng.
Nếu tất cả đều chứa số 1, bạn sẽ nhận được 28-1. Giá trị này phải là giá trị tối đa của “unsigned char” nên giữ.
Hệ thống dự trữ bit thứ tự cao nhất để đưa ra giá trị âm. Do đó, giá trị tối đa cho một “char” nằm trong khoảng từ -128 đến 127. Tuy nhiên, dung lượng vẫn giống như “unsigned char” dù có sự khác biệt về phạm vi dữ liệu.
Trong máy tính, nó sử dụng một thao tác gọi là Phần bù hai. Đây là một phần của chủ đề trong hoạt động Bitwise, nằm ngoài phạm vi của tài liệu này. Thông tin thêm về chủ đề này sẽ được thảo luận trong một tài liệu khác.
Sự khác biệt giữa char và int là gì?
Dưới đây là một số cách sử dụng phổ biến của "char" và "int":
char var1 = '9'; int var2 = 9;
Có một quan niệm sai lầm phổ biến rằng "char" chỉ có thể chứa các ký hiệu như 'a,' 'b' hoặc '9.' Điều đó không đúng.
Trên thực tế, loại "char" giống với loại "int", ngoại trừ dung lượng của char chỉ là 1 byte và dung lượng của int là 4 byte. Do đó, phạm vi kích thước dữ liệu là khác nhau giữa hai. Bạn có thể thấy điều đó trong bảng phạm vi dữ liệu ở trên.
Các đoạn mã sau đây sẽ giúp bạn có cái nhìn rõ ràng hơn về char và int.
int iX = '0'; ký tự cX1 = 49; ký tự cX2 = 50; Brain.Screen.printAt(3, 20, "biểu diễn int của '%c' = %d",iX, iX); Brain.Screen.printAt(3, 50, "biểu diễn int của '%c' = %d",cX1, cX1); Brain.Screen.printAt(3, 80, "biểu diễn int của '%c' = %d",cX2, cX2); Brain.Screen.printAt(3, 140, "So '%c' - '%c' = %d ", cX2, iX, cX2 - cX1);
Đầu ra:
biểu diễn int của '0' = 48 biểu diễn int của '1' = 49 biểu diễn int của '2' = 50 Vậy '2' – '0' = 1
Bạn có thể thắc mắc: Tại sao '0' lại hiển thị 48?
Điều này sẽ dẫn đến chủ đề được gọi là chuyển đổi “Mã ASCII”. Tiêu chuẩn ASCII là một cột mốc quan trọng của IEEE được công bố vào năm 1963. Điều này nằm ngoài phạm vi của bài viết này. Bạn được khuyến khích tra cứu Bảng Mã ASCII trực tuyến. Bạn sẽ tìm thấy rất nhiều thông tin trực tuyến về Bảng mã ASCII.