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