Các bổ ngữ loại C ++: ngắn, dài, có dấu và không dấu

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các công cụ sửa đổi kiểu và cách sử dụng chúng trong lập trình C ++ với sự trợ giúp của các ví dụ.

Trong lập trình C ++, các công cụ sửa đổi kiểu được sử dụng để thay đổi ý nghĩa của các kiểu dữ liệu cơ bản.

bốn công cụ sửa đổi kiểu trong C ++.

  • short
  • long
  • signed
  • unsigned

Đây là một bản tóm tắt ngắn gọn:

Loại dữ liệu Kích thước (tính bằng byte) Ý nghĩa
signed int 4 được sử dụng cho số nguyên (tương đương với int)
unsigned int 4 chỉ có thể lưu trữ duy nhất các số nguyên không âm
short 2 được sử dụng cho các số nguyên nhỏ (phạm vi -32768 đến 32767 )
long ít nhất 4 được sử dụng cho các số nguyên lớn (tương đương với long int)
unsigned long 4 được sử dụng cho các số nguyên dương lớn hoặc 0 (tương đương với unsigned long int)
long long số 8 được sử dụng cho số nguyên rất lớn (tương đương với long long int).
unsigned long long số 8 được sử dụng cho số nguyên dương rất lớn hoặc 0 (tương đương với unsigned long long int)
long double số 8 được sử dụng cho các số dấu phẩy động lớn
signed char 1 được sử dụng cho các ký tự (phạm vi đảm bảo -127 đến 127 )
unsigned char 1 được sử dụng cho các ký tự (phạm vi 0 đến 255 )

Loại ngắn Modifier

Chúng ta có thể sử dụng shortcho các số nguyên nhỏ (trong phạm vi −32,767đến +32,767).

Ví dụ,

 // small integer short a = 12345;

Ở đây, a là một shortbiến số nguyên.

Lưu ý: short tương đương với short int.

Công cụ sửa đổi loại dài

Nếu chúng ta cần lưu trữ một số nguyên lớn (trong phạm vi -2147483647 đến 2147483647), chúng ta có thể sử dụng trình định kiểu long. Ví dụ,

 // large integer long b = 123456;

Lưu ý: long tương đương với long int.

Công cụ sửa đổi kiểu dài cũng có thể được sử dụng với doublecác biến.

 // large floating-point number long double c = 0.333333333333333333L;

Lưu ý: Để biểu thị long double, chúng tôi sử dụng Lhậu tố. Nếu chúng tôi không sử dụng hậu tố L, thì đó là doublegiá trị được chuyển đổi thành long double(có thể dẫn đến mất dữ liệu).

dài dài

longcó thể lặp lại hai lần để tạo long longkiểu. Loại này được sử dụng cho số lượng lớn hơn long. long longchỉ có thể sử dụng công cụ sửa đổi loại int.

Ví dụ,

 // long long int long long num = 12345678;

Bộ sửa đổi đã ký và chưa ký

Các biến có dấu có thể chứa cả số nguyên dương và âm, bao gồm cả số không . Ví dụ,

 // positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;

Đây,

  • x chứa một số nguyên có giá trị dương
  • y chứa một số nguyên có giá trị âm
  • z chứa một số nguyên có giá trị bằng 0

Ghi chú:

  • Theo mặc định, số nguyên là signed. Do đó, thay vì signed int, chúng tôi có thể trực tiếp sử dụng int.
  • signed và unsigned chỉ có thể được sử dụng với kiểu int và char.

Các biến không có dấu chỉ có thể chứa các giá trị nguyên không âm. Ví dụ,

 // positive valued integer unsigned int x = 2; unsigned int y = 0;

Đây,

  • x chứa một số nguyên có giá trị dương
  • y không

Nói chung, một intbiến có thể lưu trữ phạm vi giá trị từ -2,147,483,648 đến 2,147,483,647 . Trong khi đó, một unsigned inbiến t có thể lưu trữ một dải giá trị từ 0 đến 4,294,967,295 .

char có dấu, không dấu và đơn giản

C ++ có 3 loại char khác nhau: char, signed charunsigned char. Trong thực tế, về cơ bản chỉ có 2 loại: signed charunsigned char.

Điều này là do mặc dù charkhông giống signed charhoặc unsigned chartrong C ++ tiêu chuẩn, các trình biên dịch khác nhau xử lý chartheo một trong hai signed charhoặc unsigned chartheo sở thích riêng của họ.

Lưu ý: Khi chúng ta chỉ sử dụng charthay thế cho signed charhoặc unsigned char, kiểu này được gọi là char thuần .

Như bạn có thể đoán, signed charcó thể lưu trữ cả số nguyên dương và âm, trong khi unsigned charchỉ có thể lưu trữ số nguyên dương (bao gồm cả 0 ).

Các đảm bảo hàng loạt các số nguyên giá trị signed charcó thể lưu trữ là -127 đến 127 trong khi phạm vi unsigned char0-255 .

 // plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;

Đây,

  • trơn_1 chứa một số nguyên có giá trị dương
  • trơn_2 chứa một số nguyên có giá trị bằng 0
  • sin_1 chứa một số nguyên có giá trị dương
  • sin_2 chứa một số nguyên có giá trị bằng 0
  • sin_3 giữ một số nguyên có giá trị âm
  • unsin_1 giữ một số nguyên có giá trị âm
  • unsin_2 giữ một số nguyên có giá trị bằng 0

Lưu ý: Tốt hơn là không sử dụng ký tự thuần để thực hiện các thao tác số; char có dấu hoặc char không dấu nên được sử dụng để thay thế. Char thuần chỉ nên được sử dụng để lưu trữ các giá trị ký tự.

thú vị bài viết...