कितनी बाइट है unsigned long long ? क्या यह वैसा ही है unsigned long long int?
int32_t, uint64_tआदि सी ++ उन्हें आगामी मानक के साथ प्राप्त होगा। वे हेडर में हैं <stdint.h>।
कितनी बाइट है unsigned long long ? क्या यह वैसा ही है unsigned long long int?
int32_t, uint64_tआदि सी ++ उन्हें आगामी मानक के साथ प्राप्त होगा। वे हेडर में हैं <stdint.h>।
जवाबों:
कार्यकारी सारांश: यह 64 बिट्स, या बड़ा है।
unsigned long longके रूप में ही है unsigned long long int। इसका आकार प्लेटफ़ॉर्म-निर्भर है, लेकिन सी मानक (आईएसओ C99) द्वारा कम से कम 64 बिट होने की गारंटी है। long longC89 में कोई नहीं था , लेकिन जाहिरा तौर पर MSVC भी इसका समर्थन करता है, इसलिए यह काफी पोर्टेबल है।
वर्तमान सी ++ मानक (2003 में जारी) में, कोई भी नहीं है long long, हालांकि कई संकलक इसे विस्तार के रूप में समर्थन करते हैं। आगामी C ++ 0x मानक इसका समर्थन करेगा और इसका आकार C के समान होगा, इसलिए कम से कम 64 बिट्स।
आप अभिव्यक्ति के साथ बाइट्स (विशिष्ट प्लेटफार्मों पर 8 बिट्स) में सटीक आकार प्राप्त कर सकते हैं sizeof(unsigned long long)। यदि आप वास्तव में 64 बिट चाहते हैं, तो उपयोग करें uint64_t, जो <stdint.h>संबंधित प्रकारों के एक समूह (C99, C ++ 11 और कुछ वर्तमान C ++ कंपाइलर में उपलब्ध) के साथ हेडर में परिभाषित किया गया है ।
sizeof(char) वास्तव में एक लौटने की गारंटी है । यह रिटर्न करता है कि ऑपरट कितना बाइट्स की संख्या में है, न कि "चार इकाइयों" की संख्या में। इसलिए, हर प्लेटफ़ॉर्म पर इसकी बाइट्स पर "बाइट्स नहीं"।
charऔर बाइट करते हैं, तो आप सही हैं। यदि आप समान charऔर अष्टक करते हैं , तो यह भिन्न होता है।
sizeof(long long) == 1और वह अनुरूप होगा।
C की तरह C ++ की सुंदरता यह है कि इन चीजों का आकार कार्यान्वयन-परिभाषित है, इसलिए आपके द्वारा उपयोग किए जा रहे कंपाइलर को निर्दिष्ट किए बिना कोई सही उत्तर नहीं है। क्या वे दोनों एक ही हैं? हाँ। "लॉन्ग लॉन्ग" किसी भी कंपाइलर के लिए "लॉन्ग लॉन्ग इंट" का पर्याय है जो दोनों को स्वीकार करेगा।
यह कम से कम 64 बिट का होना चाहिए। इसके अलावा यह क्रियान्वित परिभाषित है।
सख्ती से, unsigned long longC ++ 0x मानक तक C ++ में मानक नहीं है। unsigned long longप्रकार के लिए एक 'सरल-प्रकार-विशेष' हैunsigned long long int (इसलिए वे समानार्थी हैं)।
long longप्रकारों का सेट C99 में भी है और यहां तक कि मानकीकृत किया जा रहा से पहले सी ++ compilers के लिए एक आम विस्तार था।
ऑपरेटर का उपयोग करें sizeof, यह आपको बाइट में व्यक्त एक प्रकार का आकार देगा। एक बाइट आठ बिट्स की होती है। निम्नलिखित कार्यक्रम देखें:
#include <iostream>
int main(int,char**)
{
std::cout << "unsigned long long " << sizeof(unsigned long long) << "\n";
std::cout << "unsigned long long int " << sizeof(unsigned long long int) << "\n";
return 0;
}