ประเภทตัวเลขทั้งหมดใน C++ สามารถมีเครื่องหมายหรือไม่ก็ได้ ตัวอย่างเช่น คุณสามารถประกาศ int เพื่อแสดงเฉพาะจำนวนเต็มบวก เว้นแต่จะระบุไว้เป็นอย่างอื่น ชนิดข้อมูลจำนวนเต็มทั้งหมดเป็นชนิดข้อมูลที่เซ็นชื่อ กล่าวคือ มีค่าที่สามารถเป็นค่าบวกหรือค่าลบได้ คีย์เวิร์ดที่ไม่ได้ลงนามสามารถใช้เพื่อประกาศตัวแปรโดยไม่มีเครื่องหมาย
ตัวอย่าง
#include<iostream> using namespace std; int main() { unsigned int i = -1; int x = i; cout << i << ", " << x; return 0; }
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
4294967295, -1
เอาต์พุตนี้ให้ไว้เนื่องจากโอเวอร์โฟลว์ int โดยเปลี่ยน 0 ทั้งหมดในการแสดงบิตเป็น 1 วินาทีและพิมพ์ค่าสูงสุดของ int นี่เป็นเพราะว่าตอนนี้ int ฉันไม่มีสัญญาณ แต่ x มีเครื่องหมายจึงมีค่า -1 เท่านั้น