Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб роб 0.doc
Скачиваний:
1
Добавлен:
14.11.2019
Размер:
169.98 Кб
Скачать

5 Іван Хвищун Лаб. Роб. 0 для fei-2 Типи даних (До лекції № 1)

С# підтримує вісім вбудованих цілих типів:

Ім'я

Тип CTS

Опис

Діапазон

sbyte

System.SByte

8-розрядне ціле зі знаком

від -128 до 127 (від -27 до 27-1)

byte

System.Byte

8-розрядне ціле без знаку

від 0 до 255 (від 0 до 28-1)

short

System.Int16

16-розрядне ціле із знаком

від -32 768 до 32 767 (від -215 до 215-1)

ushort

System.UInt16

16-розрядне ціле без знаку

від 0 до 65 535 (від 0 до 216-1)

int

System.Int32

32-розрядне ціле із знаком

від -2 147 483 648

до 2 147 483 647 (від-231 до231-1)

uint

System.UInt32

32-розрядне ціле без знаку

від 0 до 4 294 967 295 (від 0 до 232 - 1)

long

System.Int64

64-розрядне ціле із знаком

від -9 223 372 036 854 775 808

до 9 223 372 036 854 775 807

ulong

System.UInt64

64-розрядне ціле без знаку

від 0 до 18 446 744 073 709 551 615

(від 0 до 264-1)

Нові версії Windows розраховані на 64-розрядні МП, які копіюють біти в пам'ять і з пам'яті великими порціями для прискорення обробки. Тому С# пропонує палітру цілих типів зі знаком і без знаку, що мають розмірність від 8 до 64 біт.

Тип byte є вбудованим 8-розрядним типом для зберігання величин в діапазоні від 0 до 255 включно. С# в цілях забезпечення безпеки вважає типи byte і char цілком різними, і перетворення цих типів необхідно здійснювати явно. Потрібно пам'ятати про те, що тип byte, на відміну від інших типів сімейства integer, за умовчанням використовується без знаку. Його версія із знаком носить ім'я sbyte. Змінна типу sbyte може мати значення -128 до 127 включно.

На платформі .NET тип short зовсім не є таким вже коротким. Це 16-розрядне число, яке може набувати значень в діапазоні від -32 768 до 32 767. Його версія без знаку, ushort, покриває значення в діапазоні від 0 до 65 535.

Тип int є 32-розрядним і може містити значення в діапазоні від 2 147 483 648 до 2 147 483 647. Для значень без знаку можна використовувати тип uint, здатний зберігати значення від 0 до 4 294 967 295.

Тип long зберігає 64-розрядні числа з діапазону від 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Версія без знаку, ulong може зберігати значення від 0 до 18 446 744 073 709 551 615.

Всім змінним цілого типу можуть бути присвоєні значення в десятковій або шістнадцятковій нотації. Остання вимагає присутності префікса : long х = 0x12ab;

Якщо існує неоднозначність з приводу того, чи має ціле число тип int, uint, long або ulong, то за умовчанням воно матиме тип int. Для визначення іншого цілого типу можна використовувати запис після числа наступних символів:

uint ui = 1234U;

long l = 1234L;

ulong ul = 1234UL;

Також можна використовувати малі u і l, проте малу букву l можна сплутати з одиницею.

С# підтримує 2 типи чисел з плаваючою комою.

Ім'я

Тип CTS

Опис

Значущі позиції

Діапазон (зразковий)

float

System.Single

32-розрядне число з плаваючою комою одинарної точності

7

від ±1.5*10-45 до ±3.4*1038

double

System.Double

64-розрядне число з плаваючою комою подвійної точності

15/16

від +5.0*10-324 до ±1.7*10308

Тип даних float призначений для невеликих чисел з плаваючою комою, які не вимагають великої точності представлення. Кожна із змінних типу float має до 7 цифр. Отже, діапазон можливих значень для змінних типу float складає від від ±1.5*10-45 до ±3.4*1038 включно.

Тип даних double займає більше памяті, ніж float, і забезпечує подвійну точність (15 цифр). Діапазон можливих значень для змінних типу double буде від ±5.0*10324 до ±1.7*10308 включно. Якщо існує неоднозначність з приводу того, чи має число з плаваючою комою тип float або double, то за умовчанням воно матиме тип double. Якщо ж потрібний тип float, необхідно додати до запису числа символ F (або f): float f=12.3F;

На додаток до попередніх, існує десятковий тип, що представляє числа з плаваючою комою ще вищої точності:

Ім'я

Тип CTS

Опис

Значущі позиції

Діапазон (зразковий)

Це тип для фінансових обчислень. Він дозволяє указувати грошові суми в діапазоні від 1.0*1028 до 7.9*1028. Як ви використовуватимете 28 цифр, що надаються десятковим типом, залежить від вас. Іншими словами, можна відстежувати менші суми в гривнях або копійках з більшою точністю щодо копійок або великі суми з округленням дробової частини.

Для вказівки того, що тип є десятковим, а не double, float або цілим, до значення можна додати літеру М (або m), наприклад: decimal d = 12.30М; Десятковий тип розроблений спеціально для забезпечення високої точності фінансових обчислень, проте його можна використовувати всюди, де потрібне число високої точності, що має дробову частину.

Для зберігання значень типу Boolean використовується тип С# bool, що набуває значення true або false:

Ім'я

Тип CTS

Значення

bool

System.Boolean

true або false

Тип bool не можна перетворити в жоден із цілих типів, так само як і неможливо виконати зворотну операцію. Якщо змінна (або значення, що повертається функцією) оголошена як bool, вона може набувати тільки значень true і false. При спробі використовувати нуль як false або ненульове значення як true виникне помилка.

Для зберігання одного символу С# підтримує тип даних char:

Ім'я

Тип CTS

Значення

char

System.Char

Представляє один символ Unicode (16 біт)

Хоча цей тип даних подібний на тип даних char в С і C++, все ж таки існує значна різниця.Неявні перетворення між типом char і 8-розрядним типом byte не дозволені. Це викликано, зокрема, тим, що типи мають різні розміри – довжина типу char складає 16 біт.

Хоча для представлення будь-якого символу англійського алфавіту і цифр від 0 до 9 вистачить восьми бітів, цього недостатньо для представлення символів в об'ємніших символьних системах (наприклад, китайська мова). В цілях забезпечення універсальності комп'ютерна індустрія рухається від 8-бітових наборів символів до 16-бітової схеми Unicode, в якій кодування ASCII є підмножиною. Пам'ятайте про те, що значення char є 16-бітовими значеннями Unicode, особливо тоді, коли ви звертатиметеся до них за допомогою покажчиків в блоках небезпечного коду.

Константи типу char позначаються одинарними лапками, наприклад 'А'. Якщо взяти символ у подвійні лапки, компілятор порахує його рядком і згенерує помилку.

Символи char можна представляти не тільки літералами, але і чотиризначними шістнадцятковими значеннями Unicode (наприклад, '\u0041'), приведеними значеннями цілого типу (наприклад, (char)65) або шітнадцятковими значеннями ('\x0041'). Вони можуть містити також послідовності спеціальних символів:

Послідовність спеціальних символів

Значення

\

Одинарна лапка

\"

Подвійна лапка

\\

Зворотний слеш

\0

Null

Увага

Повернення назад на один символ

\f

Подача сторінки

\n

Новий рядок

\r

Повернення каретки

\t

Символ табуляції

\v

Вертикальна табуляція

Відзначимо: оскільки С# має вбудований тип string, немає необхідності представляти рядки масивами символів.