logo search
Модуль 03 Віконні застосування / Лекційний матемріал / Частина 1

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 - вираз.