Kaç bayttır unsigned long long? İle aynı unsigned long long intmı?
int32_t, uint64_tvb C ++ yaklaşan standart ile onları alacaksınız. Başlık içindeler <stdint.h>.
Kaç bayttır unsigned long long? İle aynı unsigned long long intmı?
int32_t, uint64_tvb C ++ yaklaşan standart ile onları alacaksınız. Başlık içindeler <stdint.h>.
Yanıtlar:
Yönetici özeti: 64 bit veya daha büyüktür.
unsigned long longile aynıdır unsigned long long int. Boyutu platforma bağlıdır, ancak C standardı (ISO C99) tarafından en az 64 bit olması garanti edilir. long longC89'da yoktu , ancak görünüşe göre MSVC bile destekliyor, bu yüzden oldukça taşınabilir.
Mevcut C ++ standardında (2003'te yayınlandı), long longbirçok derleyici bunu bir uzantı olarak desteklese de , yoktur . Yaklaşan C ++ 0x standardı bunu destekleyecek ve boyutu C ile aynı olacak, yani en az 64 bit.
İfade ile tam boyutu bayt (tipik platformlarda 8 bit) cinsinden alabilirsiniz sizeof(unsigned long long). Tam olarak 64 bit istiyorsanız uint64_t, başlıkta tanımlanmış olan ve <stdint.h>bir dizi ilgili türle birlikte kullanın (C99, C ++ 11 ve bazı güncel C ++ derleyicilerinde mevcuttur).
sizeof(char) tam olarak bir tane döndürme garantilidir . Bayt sayısı olarak işlenenin ne kadar büyük olduğunu döndürür, "karakter birimleri" sayısı değil. Bu nedenle, "çoğu platformda" baytları her platformda baytları değildir.
charve bayt verirseniz, haklısınız. Eşit charve sekizli yaparsanız , o zaman değişir.
sizeof(long long) == 1ve uyumlu olur.
C ++ 'nın güzelliği, C gibi, bu şeylerin boyutlarının uygulama tanımlı olmasıdır, bu nedenle kullandığınız derleyiciyi belirlemeden doğru cevap olamaz. Bu ikisi aynı mı? Evet. "long long", her ikisini de kabul eden herhangi bir derleyici için "long long int" ile eşanlamlıdır.
En az 64 bit olmalıdır. Bunun dışında uygulama tanımlıdır.
Kesin konuşmak gerekirse, unsigned long longC ++ 0x standardına kadar C ++ 'da standart değildir. unsigned long longtür için bir 'basit tür belirleyici'dir unsigned long long int(yani eşanlamlıdırlar).
long longTiplerinin seti C99 da ve hatta standardize edilmeden önce C ++ derleyici ortak bir uzantısı idi.
Operatörü kullanın, sizeofsize bayt cinsinden ifade edilen bir türün boyutunu verecektir. Bir bayt sekiz bittir. Aşağıdaki programa bakın:
#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;
}