Целочислени типове данни

от Уикипедия, свободната енциклопедия
(пренасочване от Long)

Целочислените типове данни отразяват целите числа и могат да бъдат със знак (signed) или без знак (unsigned) в зависимост от желания диапазон от стойности. За да се определи подобен целочислен тип данни, е необходимо да се постави ключовата дума signed или unsigned пред самия тип данни. По подразбиране, ако това не е направено, то типа данни се приема за такъв със знак.[1] Разликата е че signed могат да бъдат с положителни или отрицателни стойности, докато unsigned могат да бъдат само положителни стойности (и нула). Предимството на unsigned е, че може да съхраняват по-големи стойности, стига да е сигурно, че те винаги са положителни.

Видове целочислени типове данни[редактиране | редактиране на кода]

Битове Име Диапазон Брой цифри Приложение
C/C++ C# Pascal и Delphi Java SQL
4 nibble, semioctet Signed: от −8 до 7, от −(23) до 23 − 1 1 n/a n/a n/a n/a
Unsigned: от 0 до 15, което е 24 − 1 2
8 byte, octet Signed: от −128 до 127, от −(27) до 27 − 1 3 int8_t, char sbyte Shortint byte tinyint
Unsigned: от 0 до 255, което е 28 − 1 3 uint8_t, char byte Byte n/a unsigned tinyint
16 halfword, word, short Signed: от −32 768 до 32 767, от −(215) до 215 − 1 5 int16_t, short, int short Smallint short smallint
Unsigned: от 0 до 65 535, което е 216 − 1 5 uint16_t ushort Word char unsigned smallint
32 word, long, doubleword, longword, int Signed: от −2 147 483 648 до 2 147 483 647, от −(231) до 231 − 1 10 int32_t, int, long int LongInt; Integer int int
Unsigned: от 0 до 4 294 967 295, което е 232 − 1 10 uint32_t uint LongWord; DWord; Cardinal n/a unsigned int
64 word, doubleword, longword, long long, quad, quadword, int64 Signed: от −9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, от −(263) до 263 − 1 19 int64_t, long, long long long Int64 long bigint
Unsigned: от 0 до 18 446 744 073 709 551 615, което е 264 − 1 20 uint64_t ulong UInt64; QWord n/a unsigned bigint
128 octaword, double quadword Signed: от −170 141 183 460 469 231 731 687 303 715 884 105 728 до 170 141 183 460 469 231 731 687 303 715 884 105 727, от −(2127) до 2127 − 1 39 C: only available as non-standard compiler-specific extension n/a n/a n/a
Unsigned: от 0 до 340 282 366 920 938 463 463 374 607 431 768 211 455, което е 2128 − 1 39
n n-bit integer
(общ случай)
Signed: (−(2n−1)) до (2n−1 − 1) ⌈(n − 1) log10 2⌉ Ada: range -2**(n-1)..2**(n-1)-1
Unsigned: 0 до (2n−1) n log10 2⌉ Ada: range 0..2**n-1, mod 2**n
  • Не всички SQL диалекта имат беззнакови типове данни.
  • Размерите на char, short, int, long and long long са зависими от изпълнението на езика.
  • Размерите на Delphi's Integer and Cardinal не са гарантирани, различни от платформа на платформа; обикновено се определя като LongInt и LongWord съответно.
  • Java не подпомага директно аритметиката на видовеte char. Резултатите трябва да бъдат преобразувани обратно до char от int.

Целочислени типове в Java[редактиране | редактиране на кода]

Целочислените типове отразяват целите числа и биват – byte, short, int и long.

  • Целочисленият тип byte. Той е 8-битов знаков тип, което означава, че броят на възможните стойности е 2 на степен 8, т.е. 256 възможни положителни и отрицателни стойности общо. Стойността по подразбиране е числото 0. Минималната стойност, която заема, е -128, а максималната +127.
  • Целочисленият тип short. Той е 16-битов знаков тип. В параграфа за типа byte по-горе изяснихме какво означава зна­ков тип и какво значение отдава броят на битовете. Стой­­­ността по подразбиране е числото 0. Минималната стойност, която заема, е числото -32768, а максималната – +32767.
  • Типът int. Той е 32-битов целочислен знаков тип. С нарастването на битовете нарастват и възможните стойности, които даден тип може да заема. Стой­ността по подразбиране е числото 0. Минималната стойност, която заема, е -2 147 483 648, а максималната +2 147 483 647.
  • Типът long. Той е 64-битово цяло число със знак със стойност по подразбиране 0L. Знакът L указва, че числото е от тип long (иначе се подразбира int). Минималната стойност, която типът long заема, е -9 223 372 036 854 775 808, а максималната +9 223 372 036 854 775 807.

Когато можем да използваме типът byte вместо типа int или long, не се колебайте да използвате byte. Това ще спести от заеманата в компютъра памет.

Целочислени типове – пример[редактиране | редактиране на кода]

Пример, в който декларираме няколко променливи от познатите ни целочислени типове, инициализираме ги и ги отпечатваме на конзолата.

// Declare some variablesbyte centuries = 20;

short years = 2000;

int days = 730480;

long hours = 17531520;

// Print the result on the console

System.out.println(centuries + " centuries is " + years +

" years, or " + days + " days, or " + hours + " hours.");

В разгледания по-горе пример демонстрираме използването на целочис­лените типове. За малки числа използваме типът byte, а за много големи – це­ло­численият тип long. Резултата от горния фрагмент:

20 centuries is 2000 years, or 730480 days, or 17531520 hours.

Целочислени типове в C#[редактиране | редактиране на кода]

Целочислените типове[1] отразяват целите числа и биват sbyte, byte, short, ushort, int, uint, long и ulong.

  • Типът sbyte е 8-битов целочислен тип със знак (signed integer). Това означава, че броят на възможните му стойности е 28, т.е. 256 възможни стойности общо, като те могат да бъдат както положителни, така и отрицателни. Минимал­ната стойност, която може да се съхранява в sbyte, е SByte.MinValue = -128 (-27), а максимал­ната е SByte.MaxValue = 127 (27-1). Стойността по подразбиране е числото 0.
  • Типът byte е 8-битов беззнаков (unsigned) целочислен тип. Той също има 256 различни целочислени стойности (28), но те могат да бъдат само неотрица­телни. Стойността по подразбиране на типа byte е числото 0. Минимал­ната му стойност е Byte.MinValue = 0, а максималната е Byte.MaxValue = 255 (28-1).
  • Целочисленият тип short е 16-битов тип със знак. Минималната стойност, която може да заема, е Int16.MinValue = -32768 (-215), а максималната – Int16.MaxValue = 32767 (215-1). Стойността по подразбиране е числото 0.
  • Типът ushort е 16-битов беззнаков тип. Минималната стойност, която може да заема, е UInt16.MinValue = 0, а максималната – UInt16. MaxValue = 65535 (216-1). Стой­ността по подраз­биране е числото 0.
  • Tипът int. Той е 32-битов знаков тип. С нарастването на битовете нарастват и възможните стойности, които даден тип може да заема. Стой­ността по подразбиране е числото 0. Минималната стойност, която може да заема, е Int32.MinValue = -2 147 483 648 (-231), а максималната e Int32.MaxValue = 2 147 483 647 (231-1). Типът int е най-често използваният тип в програмирането. Обикновено програмистите използват int, когато работят с цели числа, защото този тип е естествен за 32-битовите микропроцесори и е достатъчно „голям“ за повечето изчис­ления, които се извършват в ежедневието.
  • Типът uint е 32-битов беззнаков тип. Стойността по подразбиране е числото 0u или 0U (двата записа са еквивалентни). Символът 'u' указва, че числото е от тип uint (иначе се подразбира int). Минималната стойност, която може да заема, е UInt32.MinValue = 0, а максималната му стойност е UInt32.MaxValue = 4 294 967 295 (232-1).
  • Типът long е 64-битов знаков тип със стойност по подразбиране 0l или 0L (двете са еквивалентни, но за предпочитане е да използвате L, тъй като l лесно се бърка с цифрата едно 1). Символът 'L указва, че числото е от тип long (иначе се подразбира int). Минималната стойност, която може да заема типът long, е Int64.MinValue = -9 223 372 036 854 775 808 (-263), а максималната му стойност е Int64.MaxValue = 9 223 372 036 854 775 807 (263-1).
  • Най-големият целочислен тип е типът ulong. Той е 64-битов беззнаков тип със стойност по подразбиране числото 0u или 0U (двата записа са екви­валентни). Символът 'u указва, че числото е от тип ulong (иначе се подразбира long). Минималната стойност, която може да бъде записана в типа ulong е UInt64.MinValue = 0, а макси­малната – UInt64.MaxValue = 18 446 744 073 709 551 615 (264-1).

Целочислени типове – пример[редактиране | редактиране на кода]

Пример, в който декларираме няколко променливи от познатите ни целочислени типове, инициализираме ги и отпечатваме стойностите им на конзолата:

// Declare some variablesbyte centuries = 20;

short years = 2000;

int days = 730480;

long hours = 17531520;

// Print the result on the console

System.out.println(centuries + " centuries is " + years +

" years, or " + days + " days, or " + hours + " hours.");

В разгледания по-горе пример демонстрираме използването на целочис­лените типове. За малки числа използваме типа byte, а за много големи – ulong. Използваме беззнакови типове, тъй като всички използвани стой­ности са положителни числа.

Вижте също[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

  1. а б Наков, С., Веселин Колев и колектив. Въведение в програмирането със C#. В. Търново, Фабер, 2011. ISBN 978-954-400-527-6. с. 117. Посетен на 22 юли 2013.
  • Наков, С., и колектив. Въведение в програмирането с Java. В. Търново, Фабер, 2009. ISBN 978-954-400-055-4. с. 87
  • dev.mysql.com