Int8 là gì

Bạn có thể hiểu signed là kiểu dữ liệu có dấu và unsigned là kiểu dữ liệu không dấu, điểm khác biệt giữa hai loại này chính là miền giá trị của chúng. Mặc dù có nhiều cách khai báo nhưng chúng đều thuộc 1 trong 2 kiểu dữ liệu có dấu hoặc không dấu thôi

  • unsigned int x và unsigned x cùng là dữ liệu kiểu số nguyên không dấu cho nên chúng giống nhau. Khi bạn khai báo unsigned x thì trình biên dịch sẽ tự thêm int vào để được unsigned int x.
  • Tương tự, int x, signed int x, signed x cùng là kiểu dữ liệu số nguyên có dấu cho nên bạn có thể sử dụng một trong ba cú pháp này đều được.

Ví dụ khi khai báo kiểu dữ liệu số nguyên có dấu và không dấu

int a; // a sẽ có miền giá trị từ -2147483648 đến 2147483647
unsigned int a; // a sẽ có miền giá trị từ 0 đến 4294967295

Do sự khác nhau về miền giá trị giữa hai kiểu dữ liệu này cho nên khả năng lưu trữ dữ liệu của chúng cũng khác nhau.

Trong khi kiểu dữ liệu có dấu signed có thể lưu trữ được số nguyên âm nhưng miền giá trị của nó bị hạn chế chỉ đạt tới 2147483647. Giả sử bạn khai báo số nguyên có dấu vượt quá giá trị này thì sao?

#include 
using namespace std;


int main[]{
    int a = 2147483648;

    cout 

Chủ Đề