Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ชนิดข้อมูลจำนวนเต็มขยาย (การเลือกขนาดจำนวนเต็มที่ถูกต้องใน C/C++)

ในบทช่วยสอนนี้ เราจะพูดถึงชนิดข้อมูลจำนวนเต็มขยาย (Extended Integral Types) ใน C/C++

ชนิดข้อมูลใน C ถูกกำหนดอย่างหลวมหลาย ค่าขอบเขตจะเปลี่ยนแปลงไปตามคอมไพเลอร์เป็น 32 บิตหรือ 64 บิต เพื่อระบุช่วงค่าที่คอมไพเลอร์ควรใช้ในโปรแกรม เราใช้ intN_t

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
    uint8_t i; // ระบุขนาด 8 บิต
    i = 0;
    cout << "Minimum value of i\t: " << (int)i << endl;
    i = 255;
    cout << "Maximum value of i\t: " << (int)i << endl;
    
    // เกินขอบเขตที่กำหนดจะได้ค่าขยะ
    i = 2436;
    cout << "Beyond range value of i\t: " << (int)i << endl;
    return 0;
}

เอาต์พุต

Minimum value of i : 0
Maximum value of i : 255
Beyond range value of i : 132

คำอธิบาย

  • uint8_t หมายถึง unsigned integer 8 บิต (ค่า 0 ถึง 255)
  • เมื่อกำหนดค่า 2436 ซึ่งเกิน 8 บิต จะเกิดการ truncate เหลือ 132 (2436 mod 256)
  • ชนิดข้อมูลแบบคงที่ขนาด เช่น int8_t, int16_t, int32_t, int64_t และเวอร์ชัน unsigned ช่วยให้โค้ดพกพา (portable) ได้ดีขึ้น