Hằng số nguyên

Giới thiệu

Hằng số nguyên là những con số được sử dụng trực tiếp trong chương trình. Theo mặc định, những con số này có kiểu là int (trong pascal thì kiểu int giống như kiểu integer).

Ví dụ

if (a >= 10) {
    a = 0;
}

Ở đây 0 và 10 được gọi là những hằng nguyên.

 

Thông thường, các hằng số nguyên được biểu thị dưới dạng thập phân, nhưng bạn có thể biểu thị chúng trong các hệ cơ số khác như sau:

Hệ cơ số
Ví dụ
Định dạng
Ghi chú
10 (thập phân)
159
 
biểu thị bằng các chữ số từ 0 đến 9
2 (nhị phân)
B1111011
bắt đầu bằng 'B' (hoặc '0B')
biểu thị bằng 2 chữ số 0 và 1
8 (bát phân)
0173
bắt đầu bằng '0'
biểu thị bằng các chữ số từ 0-7
16 (thập lục phân)
0x7B
bắt đầu bằng '0x'
biểu thị bằng các chữ số từ 0-9 và kí tự từ A-F (hoặc a-f)

 

Hệ thập phân (decimal) là hệ cơ số 10, cũng là hệ cơ số được dùng phổ biến nhất.

Ví dụ:

int a = 101;     // có giá trị là 101 ở hệ thập phân  ((1 * 10^2) + (0 * 10^1) + 1)

 

Hệ nhị phân (binary) là hệ cơ số 2, chỉ được biểu thị bởi 2 chữ số "0" và "1", có tiền tố "B" (đôi khi là "0B") đứng đầu

Ví dụ:

int a = B101;    // có giá trị là 5 ở hệ thập phân   ((1 * 2^2) + (0 * 2^1) + 1)

Các định dạng nhị phân chỉ hoạt động trên byte (8 bit) giữa 0 (B0) và 255 (B11111111). Nếu muốn sử dụng hệ nhị phân trên một số nguyên int (16 bít) thì bạn phải thực hiện quy trình 2 bước như sau:

long myInt = (B11100000 * 256) + B11111111; // myInt = B1110000011111111

 

Hệ bát phân (octal) là hệ cơ số 8, chỉ dùng các chữ số từ 0-7 để biểu thị, có tiền tố "0" đứng đầu

int a = 0101;    // có giá trị là 65 ở hệ thập phân   ((1 * 8^2) + (0 * 8^1) + 1) 

Chú ý:

Rất khó để tìm lỗi một cách dễ dàng nếu bạn không cẩn thận hoặc không thành thạo trong việc sử dụng hệ bát phân.

Lý do là giả sử bạn muốn khai báo một hằng số nguyên ở hệ thập phân ví dụ 161, nhưng do chưa đọc bài này nên bạn "chơi trội" đặt thêm số 0 phía trước. => chương trình dịch hiểu sai hệ số bạn đang sử dụng => sinh ra lỗi logic khiến chương trình chạy sai.

 

Hệ thập lục phân (hexadecimal) là hệ cơ số 16, chỉ dùng các chữ số từ 0-9 và A-F (hoặc a-f) để biểu thị; A đại diện cho 10, B là 11, lên đến F là 15. Các chữ số dùng ở hệ này có tiền tố "0x" đứng trước

Ví dụ:

int a = 0x101;   // có giá trị là 257 trong hệ thập phân   ((1 * 16^2) + (0 * 16^1) + 1)
 

Hậu tố U và L

Theo mặc định, một hằng số nguyên được coi là một số nguyên kiểu int với những hạn chế trong giao tiếp giữa các giá trị. Để xác định một hằng số nguyên với một kiểu dữ liệu khác, bạn phải tuân theo quy tắc sau:

  • Dùng 'u' hoặc 'U' để biểu thị kiểu dữ liệu unsigned (không âm). Ví dụ: 33u
  • Dùng 'l' hoặc 'L' để biểu thị kiểu dữ liệu long. Ví dụ: 100000L
  • Dùng 'ul' hoặc 'UL' để biểu thị kiểu dữ liệu unsigned long. Ví dụ: 32767ul
Reference Tags: 
lên
5 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

kQuayTayLED

Rất cảm ơn Huy đã giành thời gian dịch và chai sẻ đến bài viết này. Mong trong thời gian tới, Huy hướng dẫn anh em làm phần quay nữa thì quá tuyệt. Chứ bây giờ, mình quay tay mỏi quá đi à yes.

lên
9 thành viên đã đánh giá bài viết này hữu ích.

Tự học Arduino

Các bài viết trong trang này đều đã được BQT cùng các bạn Cộng tác viên đánh giá và lựa chọn để cho các bạn trẻ kể cả mới bắt đầu hay đã có kinh nghiệm có thể dùng được. Hãy lưu giữ bài viết này như bản đồ hướng các bạn đến những điều hay ho trong Cộng đồng angel.

lên
609 thành viên đã đánh giá bài viết này hữu ích.