3.2. Тип цілочисельних даних
У таблиці 3.1 приведені різні типи даних для цілих чисел: хоча всі числа цілі, але залежно від типу їм виділяється різний обсяг пам'яті.
Таблиця 3.1. Розмір і діапазон цілочисельних типів в C#
Тип | Розмір (байт) | Діапазон значень | Як використати (оголошення та ініціалізація змінної) |
sbyte | 1 | Від - 128 до +128 | sbyte sb=12; |
byte | 1 | Від 0 до 255 | byte b=12; |
short | 2 | Від - 32 768 до +32 767 | short si=-12; |
ushort | 2 | Від 0 до 65 535 | ushort us=12; |
int | 4 | Від - 2 147 483 648 до +2 147 483 647 | int i=-14; |
uint | 4 | Від 0 до 4 294 967 295 | uint ui=14; |
long | 8 | Від - 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 | long lg=-14; |
ulong | 8 | Від 0 до 18 446 744 073 709 551 615 | ulong ul=14; |
Тут потрібно дещо пояснити.
sbyte - байт з урахуванням знаку. Знаковий розряд завжди розташовується у старшому (нульовому - рахунок йде зліва направо) розряді (біті). У байті - 8 розрядів(бітів). Тому мінімальне число, яке може поміститися в таку пам'ять, - це –27, т. т. -128 (потрібно усі розряди пам’яті виставити в одиниці). Таким же методом обчислюються й інші діапазони.
Буква u перед типом означає unsigned, т. т. беззнаковий. Тому старший розряд виділеної пам'яті бере участь у розмірі числа. Для пам’яті розміром у байт отримаємо мінімум, коли всі біти нульові, т. т. нуль. А максимум - коли усі біти в одиниці. Тобто 28 - 1 = 256 - 1 = 255. Чому 28 - 1? Коли ви встановите усі вісім бітів в 1, додайте до них 1 в молодший розряд і відніміть ту ж одиницю (число ж не повинно змінитися). Коли додасте за правилами двійкового додавання, то отримаєте те, що і було потрібне.
В останньому стовпчику таблиці показано, як оголошувати змінні у програмі з одночасним присвоєнням їм початкових значень. Видно, що все відповідає раніше визначеному правилу:
тип_змінної ім’я_змінної
Додана тільки ініціалізація змінної, т. т. присвоєння їй початкового значення. Присвоєння відбувається за допомогою операції = ,яка читається так: присвоїти вміст правої частини виразу лівій частині. Це не знак рівності. Це - присвоєння. Компілятор подібний вираз перетворить в команду пересилання вмісту правої частині за адресою, де розміщена змінна лівої частини виразу. Ми вже вживаємо слово "вираз", хоча його і не визначали. Вираз - це змінні, сполучені між собою знаками операцій. Наприклад, m > n - вираз.