Целочислени типове данни
Целочислените типове данни отразяват целите числа и могат да бъдат със знак (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. Използваме беззнакови типове, тъй като всички използвани стойности са положителни числа.
Вижте също
[редактиране | редактиране на кода]Източници
[редактиране | редактиране на кода]- ↑ а б Наков, С., Веселин Колев и колектив. Въведение в програмирането със C#. В. Търново, Фабер, 2011. ISBN 978-954-400-527-6. с. 117. Посетен на 22 юли 2013.
- Наков, С., и колектив. Въведение в програмирането с Java. В. Търново, Фабер, 2009. ISBN 978-954-400-055-4. с. 87
- dev.mysql.com
|