Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में अनसाइन्ड चार क्या है?

unsigned char की परिभाषा

C++ में हमने कैरेक्टर टाइप डेटा char देखा है। कभी-कभी हमने unsigned char भी देखा है। तो यहां हम देखेंगे कि मूल रूप से unsigned char का क्या अर्थ है। साइन्ड चार और अनसाइन्ड चार में क्या बुनियादी अंतर हैं?

साइन्ड vs अनसाइन्ड चार

साइन्ड चार और अनसाइन्ड चार दोनों एकल कैरेक्टर स्टोर करने के लिए उपयोग किए जाते हैं। वेरिएबल कैरेक्टर्स का ASCII वैल्यू स्टोर करता है। उदाहरण के लिए यदि 'A' स्टोर किया जाता है, तो वास्तव में यह 65 रखेगा।

साइन्ड चार के लिए हमें signed कीवर्ड लिखने की आवश्यकता नहीं है। लेकिन अनसाइन्ड के लिए, हमें कीवर्ड का उल्लेख करना होगा। सिंटैक्स:

unsigned char ch = 'n';

रेंज तुलना

साइन्ड और अनसाइन्ड चार दोनों 8-बिट के हैं।

टाइपरेंजमान
signed char / char-128 से +127128 मान
unsigned char0 से 255256 मान

ASCII और एक्सटेंडेड ASCII

  • बेसिक ASCII मान 0 से 127 की रेंज में हैं
  • ASCII का बाकी हिस्सा **एक्सटेंडेड ASCII** के रूप में जाना जाता है (128-255)
  • char या signed char का उपयोग करके हम एक्सटेंडेड ASCII मान स्टोर नहीं कर सकते (128 से ऊपर के मान ऋणात्मक के रूप में व्याख्या किए जाएंगे)
  • unsigned char का उपयोग करके, हम एक्सटेंडेड भाग को स्टोर कर सकते हैं क्योंकि इसकी रेंज 0 से 255 है

उदाहरण: एक्सटेंडेड ASCII

#include <iostream>
using namespace std;

int main() {
    unsigned char uch = 200;  // एक्सटेंडेड ASCII
    signed char sch = 200;    // ओवरफ्लो: -56 बन जाता है
    
    cout << "unsigned char (200): " << static_cast(uch) << endl;
    cout << "signed char (200): " << static_cast(sch) << endl;
    
    // कैरेक्टर के रूप में प्रिंट (टर्मिनल एन्कोडिंग पर निर्भर)
    cout << "As char: '" << uch << "' vs '" << sch << "'" << endl;
    
    return 0;
}

आउटपुट

unsigned char (200): 200
signed char (200): -56
As char: 'È' vs ''

कब उपयोग करें

स्थितिअनुशंसित टाइप
टेक्स्ट कैरेक्टर्स (ASCII)char या std::string
रॉ बाइट डेटा (बाइनरी)unsigned char या std::byte (C++17)
छोटे इंटीजर्स (0-255)unsigned char या uint8_t
छोटे साइन्ड इंटीजर्स (-128 से 127)signed char या int8_t

मॉडर्न C++: std::byte (C++17)

#include <cstddef>  // std::byte के लिए

std::byte b = std::byte{200};  // टाइप-सेफ बाइट
// std::byte पर अंकगणित नहीं - कन्वर्ट करें:
int val = std::to_integer<int>(b);  // 200

महत्वपूर्ण: char की साइन्डनेस कार्यान्वयन-निर्भर है

// char साइन्ड या अनसाइन्ड हो सकता है (कंपाइलर-निर्भर)
char c = 200;  // कुछ कंपाइलर्स पर -56, अन्य पर 200

// पोर्टेबल कोड के लिए स्पष्ट रहें:
signed char sc = 200;     // गारंटीड -56
unsigned char uc = 200;   // गारंटीड 200
  1. - विंडोज पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां विंडोज के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। Visual S

  1. - C++ में साइन्ड और अनसाइन्ड कीवर्ड्स

    C++ में सभी नंबर टाइप्स या तो साइन वाले हो सकते हैं या नहीं। उदाहरण के लिए, आप एक int घोषित कर सकते हैं जो केवल पॉजिटिव इंटीजर्स को दर्शाता है। जब तक अन्यथा निर्दिष्ट न हो, सभी इंटीजर डेटा टाइप्स साइन्ड डेटा टाइप्स होते हैं, यानी उनके मान पॉजिटिव या नेगेटिव हो सकते हैं। अनसाइन्ड कीवर्ड का उपयोग बिना

  1. - C++ प्रोग्रामिंग भाषा क्या है?

    C++ एक प्रोग्रामिंग भाषा है जिसे ब्यार्ने स्ट्रॉस्ट्रप द्वारा 1979 में बेल लैब्स में विकसित किया गया था। C++ को एक मिडिल-लेवल भाषा माना जाता है, क्योंकि इसमें हाई-लेवल और लो-लेवल दोनों भाषा विशेषताओं का संयोजन होता है। यह C का सुपरसेट है, और वस्तुतः कोई भी वैध C प्रोग्राम एक वैध C++ प्रोग्राम है। C+