Базові типи даних мови C#

Базові типи даних мови C#


Зміст



1. Які є основні (базові) типи даних в мові C#?

У мові C# реалізовані наступні базові типи даних:

  • Цілочисельні типи: sbyte, byte, short, ushort, int, uint, long, ulong.
  • Типи, в яких зберігаються дані з плаваючою комою (дійсні типи): float, double, decimal.
  • Символьний тип: char.
  • Логічний тип: bool.
  • Рядковий тип: string.


2. Які особливості використання цілочисельних типів даних?

У C# є такі основні цілочисельні типи даних:

sbyte, byte, short, ushort, int, uint, long, ulong.

Дані таких типів представляють собою значення з множини цілих чисел. Наприклад: -200, 8938, 1134448348.

Символи u перед назвами деяких типів є скороченням від слова unsigned. Це означає, що значення змінних цих типів є без знаку, тобто зберігати від’ємні числа у змінних цих типів неможна.

Змінні типів sbyte та byte займають 1 байт в пам’яті комп’ютера. Змінні типу short та ushort2 байти. Змінні типу int та uint4 байти. Змінні типу long та ulong – 8 байт.


3. Як у програмі описати змінну з іменем d цілого типу int?

Відповідь:

int d;

Після такого опису під змінну з іменем d буде виділено 4 байти пам’яті комп’ютера.


4. Як у змінну d цілого типу ulong занести число 398?

Для присвоєння змінній деякого значення використовується оператор присвоєння, який позначається оператором ‘=‘.

Відповідь 1. Присвоєння значення змінній після її опису.

ulong d;
d = 398;

Відповідь 2. Присвоєння значення змінній під час її опису.

ulong d = 398;


5. Як програмно визначити розмір змінної заданого типу?

Щоб визначити розмір змінної використовується операція sizeof():

int d;
d = sizeof(sbyte); // d = 1
d = sizeof(short); // d = 2
d = sizeof(int);   // d = 4
d = sizeof(long);  // d = 8

Таким способом можна обчислити розмір в байтах змінної будь-якого базового типу.


6. Які особливості типів даних з плаваючою комою (дійсні типи)?

Типи даних з плаваючою комою представляють числові значення з множини дійсних чисел. Це означає, що типи даних з плаваючою комою можуть зберігати і цілі числа.

У C# є три основні типи даних з плаваючою комою:

float, double, decimal

Ці типи дозволяють зберігати числа з плаваючою комою, наприклад:

2.85
-1000.399
20390239.939


7. Як описати змінну дійсного типу (з плаваючою комою)?

Приклад опису змінних типу float, double, decimal:

float x;
double y;
decimal z;

Тут описується три змінні з іменами x, y, z. Під змінну x виділяється 4 байти пам’яті, під змінну y виділяється 8 байт, під змінну z виділяється 16 байт.


8. Як програмно занести значення у змінну дійсного типу?

Приклад внесення числових даних у змінні дійсних типів:

float f = (float)9030.939; // початкова ініціалізація
double d;
decimal z;
d = -392093828.3993;
z = (decimal)390209.3099029;

У даному коді, при внесенні даних у змінну f, відбувається переведення числового значення 9030.939 у тип float. Так само відбувається переведення числа для змінної z у тип decimal. Таке перетворення є необхідним для дійсних типів, тому що усі числові значення є типу double.


9. Як визначити скільки байт пам’яті займає одна змінна типу float, double чи decimal?

Щоб визначити це, потрібно написати такий програмний код:

int d;
d = sizeof(float);   // d = 4
d = sizeof(double);  // d = 8
d = sizeof(decimal); // d = 16


10. Як перевести змінну типу float в тип int?

Для цього використовується операція приведення типів. У дужках потрібно вказати назву типу до якого відбувається приведення.

Приклад:

float a;
int b;
a = (float)23.789;
b = (int)a; // b = 23

При використанні операцій приведення типів, потрібно враховувати обмеження, що накладаються на типи, які займають менше місця в пам’яті комп’ютера.

Наприклад, змінна типу short може представляти менший діапазон чисел, ніж змінні типу float, double. У наступному лістингу відбувається переповнення значення у змінній типу short:

short i;
float f;
f = (float)35748473.8;
i = (short)f; // i = 31352 - переповнення


11. Як перевести змінну з типу int у тип double?

Приклад приведення з int в double:

int i;
double d;
i = 3998;
d = (double)i;


12. Які є базові символьні типи даних в мові C#?

Відповідь: char, string

Тип string представляє послідовність символів.

Змінні типу char можуть отримувати значення одного символу. Значення змінної типу char взяте в одинарні лапки, наприклад:

'A'
'4'
';'

Змінна типу char представляє собою одиночний символ Unicode. Така змінна займає в пам’яті комп’ютера 2 байти.

Змінні типу string це рядки символів, які взяті в подвійні лапки, наприклад:

"This is a string"

Змінна типу string в C# може мати будь-яку довжину (кількість символів).


13. Які особливості використання даних типу char у програмі?

Дані типу char представляють символьне значення коду, введеного з клавіатури. Код символу представляє собою ціле число.

Наприклад, код символу ‘f‘ рівний значенню 102.

Фрагмент коду, в якому обчислюється код символу:

int code;
char symbol;
symbol = 's';
code = (int)symbol; // code = 115

Тобто, дані типу char є тими самими цілими числами. Дані типу char займають в пам’яті комп’ютера 1 байт.

Співвідношення “символ-код” розміщується у таблиці символів Windows. Символи з кодами від 0 до 127 – це зарезервовані символи BIOS. Вони включають найбільш вживані символи, символи цифр, символи латинської абетки. Ці символи змінити неможна.

Символи з кодами від 128 до 255 – це регіональні символи, що прив’язані до конкретної абетки того комп’ютера на якому встановлена операційна система Windows.


14. Як у програмі за кодом символу отримати його символьне представлення?

Фрагмент програмного коду, який переводить код (ціле число) в символ (тип char):

int code;
char symbol;
code = 115;
symbol = (char)code; // symbol = 's'


15. Які особливості використання змінних типу string?

Змінні типу string представляють собою рядки. Максимальна довжина рядка не обмежена.

Приклад опису змінної типу string з іменем s1.

string s1;

Приклад внесення рядка у змінні типу string:

string s1 = "Text-1";
string s2;
s2 = "Text-2";
char c;
c = s2[0]; // Символ з індексом 0. c = 'T'

Зі змінними типу string можна виконувати різноманітні операції. Детальний опис поширених операцій зі змінною типу string описано тут.


16. Які особливості використання змінної логічного типу bool?

Змінна логічного типу bool визначає лише два стани: “істина” та “не істина”. Змінна типу bool може приймати лише два значення: true, false.

Приклад використання змінної типу bool:

bool b1, b2 = true;
b1 = (6 <= 5); // b1 = false


17. Яким чином здійснюється початкова ініціалізація змінних різних типів?
int d = 231;
float z = (float)-23.15;
char c = 'k';
string s = "Hello!";
double r = -32.593;
bool b = true;


18. Яким чином визначити максимально допустиме (мінімально допустиме) значення змінної певного типу?

Щоб визначити максимально допустиме чи мінімально допустиме значення змінної деякого типу в бібліотеці .NET Framework використовуються властивості MaxValue та MinValue.

Приклади визначення граничних значень змінних різних типів.

Для змінних типу int:

// тип int
int i;
int MaxI;
int MinI;
MaxI = int.MaxValue; // MaxI = 2147483647
MinI = int.MinValue; // MinI = -2147483648

Для змінних типу ulong:

// тип ulong
ulong i;
ulong MaxUL;
ulong MinUL;
MaxUL = ulong.MaxValue; // MaxUL = 18446744073709551615
MinUL = ulong.MinValue; // MinUL = 0

Для змінних типу float:

float f;
float MaxF;
float MinF;
MaxF = float.MaxValue; // MaxF = 3.402823E+38
MinF = float.MinValue; // MinF = -3.402823E+38