C ++ Tip Değiştiriciler: kısa, uzun, imzalı ve işaretsiz

Bu eğitimde, tür değiştiricileri ve bunları örnekler yardımıyla C ++ programlamada nasıl kullanacağımızı öğreneceğiz.

C ++ programlamasında, tür değiştiriciler temel veri türlerinin anlamını değiştirmek için kullanılır.

C ++ ' da dört tür değiştirici vardır.

  • short
  • long
  • signed
  • unsigned

İşte kısa bir özet:

Veri tipi Boyut (Bayt cinsinden) Anlam
signed int 4 tamsayılar için kullanılır (eşdeğer int)
unsigned int 4 yalnızca negatif olmayan tam sayıları depolayabilir
short 2 küçük tamsayılar için kullanılır ( -32768 - 32767 aralığı )
long en az 4 büyük tamsayılar için kullanılır (eşdeğer long int)
unsigned long 4 büyük pozitif tamsayılar veya 0 (eşdeğer unsigned long int) için kullanılır
long long 8 çok büyük tamsayılar için kullanılır (eşdeğer long long int).
unsigned long long 8 çok büyük pozitif tamsayılar veya 0 (eşdeğer unsigned long long int) için kullanılır
long double 8 büyük kayan noktalı sayılar için kullanılır
signed char 1 karakterler için kullanılır (garantili aralık -127 ila 127 )
unsigned char 1 karakterler için kullanılır ( 0-255 aralığı )

kısa tip Değiştirici

Küçük tamsayılarshort için kullanabiliriz ( ila aralığında ).−32,767+32,767

Örneğin,

 // small integer short a = 12345;

Burada a bir shorttamsayı değişkendir.

Not: short eşdeğerdir short int.

uzun Tip Değiştirici

Büyük bir tamsayı saklamamız gerekirse (-2147483647 ile 2147483647 aralığında), tür tanımlayıcısını kullanabiliriz long. Örneğin,

 // large integer long b = 123456;

Not: long eşdeğerdir long int.

Uzun tip değiştirici, doubledeğişkenlerle de kullanılabilir .

 // large floating-point number long double c = 0.333333333333333333L;

Not: To gösteriyor long double, kullandığımız Lson eki. Soneki kullanmazsak, bu, dönüştürülen Lbir doubledeğerdir long double(bu, veri kaybına neden olabilir).

uzunca

longlong longtürü oluşturmak için iki kez tekrarlanabilir . Bu tür, daha büyük sayılar için kullanılır long. long longtür değiştirici yalnızca ile kullanılabilir int.

Örneğin,

 // long long int long long num = 12345678;

imzalı ve imzasız Değiştiriciler

İşaretli değişkenler, sıfır dahil olmak üzere hem pozitif hem de negatif tam sayıları tutabilir . Örneğin,

 // positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;

Buraya,

  • x, pozitif değerli bir tamsayı tutar
  • y, negatif değerli bir tamsayı tutar
  • z sıfır değerli bir tamsayı tutar

Not:

  • Varsayılan olarak tamsayılar signed. Dolayısıyla bunun yerine signed intdoğrudan kullanabiliriz int.
  • signed ve unsigned yalnızca int ve char türleriyle kullanılabilir.

İşaretsiz değişkenler sadece negatif olmayan bir tamsayı değerler alabilir. Örneğin,

 // positive valued integer unsigned int x = 2; unsigned int y = 0;

Buraya,

  • x, pozitif değerli bir tamsayı tutar
  • y sıfır tutar

In general, an int variable can store a range of values from -2,147,483,648 to 2,147,483,647. Whereas, an unsigned int variable can store a range of values from 0 to 4,294,967,295.

signed, unsigned and plain char

C++ has 3 different char types: char, signed char and unsigned char. In practice, there are basically only 2 types: signed char and unsigned char.

This is because even though char is not the same as signed char or unsigned char in standard C++, different compilers treat char as either signed char or unsigned char according to their own preference.

Note: When we only use char instead of signed char or unsigned char, this type is known as plain char.

Tahmin edebileceğiniz gibi, signed charhem pozitif hem de negatif tam sayıları unsigned charsaklayabilirken, yalnızca pozitif tam sayıları ( 0 dahil ) saklayabilir .

Garanti değerleri tam sayı aralığı signed charsaklayabilir olan ila 127 -127 aralığı ise unsigned charolan 0 ila 255 .

 // plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;

Buraya,

  • Plain_1, pozitif değerli bir tam sayı içerir
  • Plain_2, sıfır değerli bir tamsayı içerir
  • sin_1, pozitif değerli bir tam sayıya sahiptir
  • sin_2, sıfır değerli bir tam sayı içerir
  • sin_3, negatif değerli bir tam sayı içerir
  • unsin_1, negatif değerli bir tam sayı içerir
  • unsin_2, sıfır değerli bir tam sayı içerir

Not: Sayısal işlemlerde düz karakter kullanılmaması tercih edilir; Bunun için imzalı karakter veya imzasız karakter kullanılmalıdır. Düz karakter yalnızca karakter değerlerini saklamak için kullanılmalıdır.

Ilginç makaleler...