CodeGym /Kurslar /C# SELF /C#-da ədədlər və simvollar

C#-da ədədlər və simvollar

C# SELF
Səviyyə , Dərs
Mövcuddur

1. Ədədlər hansı olur?

Proqramlaşdırmada biz daim ədədlərlə işləyirik — istifadəçinin yaşı, qalaktikadakı ulduzların sayı və ya bank hesabındakı qəpiklərə qədər. Amma fərqli tapşırıqlar üçün fərqli ədəd tipləri lazımdır: bəzən yalnız tam ədədləri saxlamaq vacibdir, bəzən isə çox dəqiq onluq ədədlər, bəzən də "mənfi olmayan" ədədlər lazımdır.

Tam ədədlər (int və digərləri)

Tam ədəd — bu, onluq hissəsi olmayan ədəddir.
C#-da ən çox int tipindən istifadə olunur, amma bundan başqa ölçüsü və diapazonu fərqli olan bir neçə variant da var.

  • int — tam ədədlər üçün əsas "işçi" tipdir. Çox böyük (və kiçik) dəyərləri saxlaya bilir, amma yaddaşda çox yer tutmur.
    Məsələn, like-ların sayı, yaş, ildəki günlərin sayı üçün demək olar ki, həmişə int istifadə olunur.
  • long — dəyərlər çox böyük ola bilərsə (milyardlar və ya trilyonlar kimi) istifadə olunur.
    Nümunə: YouTube-da bütün tarix boyu baxışların sayını saxlamaq.
  • short — daha qənaətcil, amma az istifadə olunan tipdir. Çoxlu eyni kiçik dəyərlər olduqda uyğundur (məsələn, audio məlumatlar, rəng komponentləri).
  • byte — daha kiçik dəyərlər üçün, xüsusilə qrafikada və fayllarla işləyərkən yaddaşa qənaət vacibdirsə.

Onluq ədədlər (double, float, decimal)

Bəzən onluq hissəsi olan ədədlərlə işləmək lazımdır. Məsələn, havanın temperaturu, tələbənin orta balı, məhsulun qəpiklə qiyməti.

  • double — onluq ədədləri saxlamaq üçün "default" tipdir. Əksər hesablamalar üçün kifayət qədər dəqiqdir (nümunə: 3.1415926535…).
  • float — daha yüngül və az dəqiq tipdir, əsasən kompüter qrafikasında və ya böyük məlumat massivlərinin işlənməsində yaddaşa qənaət vacibdirsə istifadə olunur.
  • decimal — maliyyə və mühasibat tapşırıqları üçün nəzərdə tutulub, qəpiklərə qədər dəqiqliyi saxlamaq vacibdirsə, onluq ədədlərin saxlanma xüsusiyyətlərinə görə "itki" olmasın deyə. Məsələn, hesabdakı balansı, məhsulun qiymətini, valyuta məzənnəsini saxlamaq üçün.

Xüsusi ədədi tiplər

C#-da xüsusi hallarda istifadə olunan əlavə ədədi tiplər də var:

  • uint, ulong, ushort — "işarəsiz" tiplərdir, yalnız müsbət dəyərlər istifadə oluna bilər, amma diapazon "işarəli" analoqları ilə müqayisədə 2 dəfə böyükdür.
  • sbyte — kiçik, işarəli tipdir (mənfi və müsbət dəyərləri kompakt saxlamaq üçün, -128 -dən 127 -yə qədər).
  • BigInteger — standart diapazonlardan böyük ədədlərlə işləmək lazımdırsa, məsələn, kriptoqrafiyada və ya astronomiyada hesablamalar üçün.

2. İşarəli və işarəsiz ədədlər

İşarəli tip həm müsbət, həm də mənfi ədədləri saxlaya bilir. Bu rahatdır, əgər dəyərlər "həm sıfırdan yuxarı, həm də aşağı" ola bilərsə: məsələn, temperatur, hesab balansı, dəniz səviyyəsindən hündürlük.

İşarəsiz tip — yalnız sıfır və müsbət ədədlər. Mənfi ola bilməzsə uyğundur — məsələn, otaqdakı adamların sayı, fayldakı baytlar, vaxt.

Nümunə:

  • int (işarəli): -10, 0, 50
  • uint (işarəsiz): 0, 10, 1000

İşarəsiz tipdən istifadə edəndə, dəyişəndə 2 dəfə çox maksimum dəyər saxlamaq olur (çünki "mənfi diapazon" yoxdur). Onlardan istifadə olunur, əgər dəqiq bilirsən ki, dəyər mənfi ola bilməz.

İşarəli tam tiplər

Tip Ölçü Dəyərlər diapazonu İstifadə nümunəsi
sbyte
1 bayt -128-dən 127-yə -128, 0, 127
short
2 bayt -32 768-dən 32 767-yə -1000, 0, 32000
int
4 bayt -2 147 483 648-dən 2 147 483 647-yə -1000000, 0, 2000000
long
8 bayt -9 223 372 036 854 775 808
-dən 9 223 372 036 854 775 807-yə
-10_000_000_000, 1

İşarəsiz tam tiplər

Tip Ölçü Dəyərlər diapazonu İstifadə nümunəsi
byte
1 bayt 0-dan 255-ə 0, 128, 255
ushort
2 bayt 0-dan 65 535-ə 1000, 65000
uint
4 bayt 0-dan 4 294 967 295-ə 100, 4000000000
ulong
8 bayt 0-dan 18 446 744 073 709 551 615-ə 1, 18_000_000_000_000

Onluq tiplər

Tip Ölçü Dəyərlər nümunəsi Təsvir
float
4 bayt 3.14f, -0.001f tək dəqiqlik (7 rəqəm)
double
8 bayt 3.1415, -1.7E+308 ikiqat dəqiqlik (15-16 rəqəm)
decimal
16 bayt 0.1m, 12345.6789m maliyyə üçün yüksək dəqiqlik

3. Ədədlər üçün suffix-lər

Bəzi hallarda, hansı tipdən istifadə etmək istədiyini açıq göstərmək lazımdır. Bunu suffix vasitəsilə edirlər:

  • L və ya llong tipi üçün (məsələn, 10000000000L)
  • U və ya uuint tipi üçün (məsələn, 123U)
  • F və ya ffloat tipi üçün (məsələn, 3.14f)
  • D və ya ddouble tipi üçün (adətən lazım deyil, çünki suffixsiz onluq ədəd double olur)
  • M və ya mdecimal tipi üçün (məsələn, 99.99m — xüsusilə pulda vacibdir!)

Əgər suffix göstərməsən, default olaraq tam ədəd int, onluq isə double sayılır. Məsələn, 42 bu int-dir, 3.14 isə double-dır.

Bu nə üçün lazımdır? Məsələn, böyük ədəd long tipli dəyişənə mənimsədikdə səhv almamaq üçün:


long bigNumber = 9000000000L; // əgər L olmasa, kompilasiya səhvi olacaq

Pul üçün isə həmişə decimalm suffix-i istifadə etmək yaxşıdır:


decimal price = 999.99m;

4. Alt xətt _ ayırıcısı

Ədədlər uzun olanda, sıfırlarda asanlıqla çaşmaq olur. Gözəllik və oxuma rahatlığı üçün C#-da alt xətt ayırıcısı istifadə etmək olar.


int population = 146_700_000;
long stars = 100_000_000_000L;
Ədədləri oxumaq üçün alt xəttdən istifadə

Bu tamamilə qanunidir: kompilator alt xətləri saymır, sən isə dərhal "gözlə" mərtəbələri görə bilirsən. Əsas odur ki, alt xətti əvvəldə, sonda, nöqtədən sonra və ya suffix-dən əvvəl qoyma.

5. Simvol tipi char

Bəzən proqramda ədədlərlə yox, ayrıca simvollarla işləmək lazımdır: hərf, rəqəm, işarə və hətta boşluq. Bunun üçün xüsusi tip var — char.

char nədir?
Bu, bir simvol saxlayan dəyişəndir:

  • latın və ya kiril hərfi ('A', 'я')
  • rəqəm ('5')
  • spesifik simvol ('#', '%', '@')
  • idarəedici simvol ('\\n' — yeni sətrə keçid)

Xüsusiyyətlər:

  • char tipinin dəyəri tək dırnaq içində yazılır: char letter = 'B';
  • Əslində char daxilində simvolun ədədi kodu (Unicode sistemində) saxlanılır, ona görə char-ı müqayisə etmək, int-ə çevirmək və hətta sadə arifmetika aparmaq olar:

char a = 'A';
char b = (char)(a + 1); // 'B'
int code = a;           // 65 — 'A' hərfinin kodu

Xüsusi simvollardan istifadə etmək olar, məsələn: char tab = '\\t'; // tabulyasiya simvolu

char nə üçün lazımdır?
Mətnlə simvol-simvol işləmək üçün (məsələn, sətrin ilk hərfini yoxlamaq, durğu işarələrini tapmaq, parolu simvol-simvol oxumaq).

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION