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 i के पास साइन नहीं है। लेकिन x के पास साइन है इसलिए इसका मान केवल -1 होगा।