Khi số nguyên hết chỗ
Thuộc phần Mạch điện đầu tiên trong hành trình Arduino của Coddy. Bài học 12 trên 22.
Một biến được lưu bằng một số lượng bit cố định, những công tắc bật/tắt rất nhỏ trong bộ nhớ của bo mạch. Trên Uno, một int có 16 bit, nên nó chỉ lưu được các số từ -32,768 đến 32,767.
Vượt quá giới hạn trên thì nó không tăng thêm, mà quay vòng xuống giới hạn dưới. 32,767 cộng 1 thành -32,768. Đây gọi là tràn số, và sketch không đưa ra cảnh báo nào.
Với các số lớn hơn, hãy dùng kiểu có nhiều bit hơn:
long big = 100000; // từ -2,147,483,648 đến 2,147,483,647
unsigned long huge = 3000000000; // từ 0 đến 4,294,967,295long có 32 bit. unsigned long cũng có 32 bit nhưng không lưu số âm, nên có thể lưu số lớn gấp đôi: phù hợp để đếm và đo thời gian.
long dùng bộ nhớ gấp đôi int, còn Uno chỉ có 2048 byte dành cho các biến, vì vậy hãy dùng int khi các số luôn nhỏ.
Thử thách
Trung bìnhCode khởi đầu cộng thêm 1000 vào count hai mươi lần mỗi giây. Nhấn Chạy và xem giá trị chuyển sang số âm sau 32,000.
- thay đổi kiểu dữ liệu của
countđể biến này có thể đếm vượt quá 100,000
Sau đó nhấn Kiểm tra.
Tự làm thử
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
count = count + 1000;
Serial.println(count);
delay(50);
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Mạch điện đầu tiên
2Giao tiếp với máy tính
Xin chào, Serial MonitorPrint và PrintlnIn sốBiến đầu tiên của bạnĐếm tăng dầnKhi số nguyên hết chỗTự luyện tập: Playground Arduino