Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

(limits.h) trong C/C++

Header limits.h (C) và <climits> (C++) định nghĩa các macro giới hạn giá trị của các kiểu dữ liệu cơ bản. Biến không thể lưu giá trị vượt quá các giới hạn này.

Một số macro quan trọng

CHAR_BITSố bit trong 1 byte (thường 8)
CHAR_MIN / CHAR_MAXGiá trị min/max của char
SHRT_MIN / SHRT_MAXGiá trị min/max của short int
INT_MIN / INT_MAXGiá trị min/max của int
LONG_MIN / LONG_MAXGiá trị min/max của long int
ULONG_MAXGiá trị max của unsigned long

Ví dụ C++

#include <iostream>
#include <climits>
#include <stack>
using namespace std;

int main() {
    int x = 28;
    int bits = CHAR_BIT * sizeof(x);
    stack<bool> s;
    
    cout << "So nguyen: " << x << endl;
    
    // Chuyen sang nhi phan
    for (int i = 1; i <= bits; i++) {
        s.push(x % 2);
        x /= 2;
    }
    
    cout << "So bit trong byte: " << CHAR_BIT << endl;
    for (int i = 1; i <= bits; i++) {
        cout << s.top();
        s.pop();
        if (i % CHAR_BIT == 0) cout << " ";
    }
    
    cout << "\n\nGia tri nho nhat cua short int: " << SHRT_MIN;
    return 0;
}

Kết quả

So nguyen: 28
So bit trong byte: 8
00000000 00000000 00000000 00011100

Gia tri nho nhat cua short int: -32768

Giải thích: Dùng CHAR_BIT (8) và sizeof(int) (4) tính tổng bit = 32. Dùng stack đảo ngược bit để in nhị phân. In SHRT_MIN = -32768.