VirQ. Таблица целых типов в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Целочисленные переменные /
Таблица целых типов
Статей на сайте: 61

Таблица целых типов


C# поддерживает 8 типов целочисленных значений. Каждый из них имеет своё преимущество и свой недостаток. Казалось бы, сделали бы самое максимальное возможное число и был бы 1 тип. Но, дело в том, что чем тип больше, тем он медленнее при огромных количествах мелких расчётов.
Приведём таблицу этих типов:



Тип Размер в ОЗУ Диапазон
sbyte 1 байт -128..127
short 2 байта -32768..32767
int 4 байта -2147483648..2147483647
long 8 байтов -9223372036854775808..9223372036854775807

А так же более редкий случай только положительных значений той же длины:

Тип Размер в ОЗУ Диапазон
byte 1 байт 0..255
ushort 2 байта 0..65535
uint 4 байта 0..4294967295
ulong 8 байтов 0..18446744073709551615

Что означает понятие "Размер в ОЗУ"? Числа хранятся в оперативном запоминающем устройстве (ОЗУ) или проще, памяти. Учитывая 8-битную систему (подробнее смотрите тут).
Получается, если вам надо сохранить 1 000 000 возрастов людей, можно воспользоваться типом byte, т.к. возраст не может быть отрицательным и вряд ли кто-то проживёт большее 255 лет. В этом случае 1 миллион таких записей будет занимать в ОЗУ 1 мегабайт.
Для хранения таких же данных, но типом long понадобится 8 мегабайт ОЗУ.
Над этим стоит задуматься, когда речь пойдёт по сотнях миллионов значений, и не только хранение возраста, а ещё и роста, веса, кол-ва родственников данного человека, № его паспорта и прочее.

Откуда берутся именно такие числа? Ответ прост. Учитывая 8-битную систему, получаем:
28 = 256 (1 байт)
216 = 65536 (2 байта)
232 = 4294967296 (4 байта)
264 = 18446744073709551616 (8 байтов)

Почему -128? Но +127. Почему -32768, но +32767?
Потому что счёт отрицательных чисел начинается с -1 и до -32768.
А счёт неотрицательных чисел начинается с 0 и до 32767.
Получается, ровно две половины.




Так же и с любым другим знаковым типом short, int, long

При первом использовании переменной необходимо указать её тип. Например:
[code] int a = 155; int b = 200; int c = a * b; short k = 0; long m = 16; int age = 25; double weight = 74.5; int height = 181; [/code]

Дополнительная информация о том, как вывести результат в консоли или WinForm