• Turni boshqa turga keltirish qoidalari.
  • Mirzo Ulug’bek nomidagi O’zbekiston Milliy Universiteti Jizzax filiali




    Download 1.21 Mb.
    Pdf ko'rish
    bet2/4
    Sana03.04.2023
    Hajmi1.21 Mb.
    #48522
    1   2   3   4
    Bog'liq
    4-Maruza Berilganlar turlari
    ID.UZ.PASSWORD, odil, 1- KLASSTER, 7 sinf xaiqiysi kanspeki, Rus tili A, 55568
    double: suzuvchi nuqta raqamini ± 5,0 * 10
    -324
    dan ± 1,7 * 10
    308
    gacha saqlaydi
    va 8 baytni egallaydi. System.Double tizim turi bilan ifodalanadi.


    decimal: o‘nli kasr sonini saqlaydi. Agar kasrsiz ishlatilsa, u ± 1.0 * 10
    -28
    dan ±
    7.9228 * 10
    28
    gacha bo'lgan qiymatga ega, 28 ta o'nli kasrni saqlashi mumkin va
    16 baytni oladi. System.Decimal tizim turi bilan ifodalanadi.
    char: Bitta Unicode belgisini saqlaydi va 2 baytni oladi. System.Char tizim turi
    bilan ifodalanadi. Belgilar literallari ushbu turga mos keladi:
    char a = 'A';
    char b = '\x5A';
    char c = '\u0420';
    string: Unicode belgilar to'plamini saqlaydi. System.String tizim turi bilan
    ifodalanadi. Belgilar literallari ushbu turga mos keladi.
    string salom = "Hello";
    string dunyo = "world";
    ob’ekt: har qanday ma'lumot turidagi qiymatni saqlashi mumkin va 32 bitli
    platformada 4 bayt va 64 bitli platformada 8 bayt. Boshqa barcha .NET turlari va
    sinflari uchun asosiy tur bo'lgan System.Object tizim turi bilan ifodalanadi.
    object a = 22;
    object b = 3.14;
    object c = "hello code";



    Turni boshqa turga keltirish qoidalari.
    Ma'lumot turlarini ko'rib chiqishda u yoki bu turdagi qanday
    qiymatlarga ega bo'lishi va qancha bayt xotirani egallashi
    mumkinligi ko'rsatildi. Oxirgi mavzuda arifmetik amallar
    muhokama qilindi. Endi har xil turdagi ma'lumotlarga
    qo'shimcha operatsiyani qo'llaymiz:
    byte a = 4;
    int b = a + 70;
    Amaliyot natijasi juda to'g'ri, kutilganidek, 74 raqami.
    Keling, ikkita baytli ob'ektga qo'shimcha kiritishga harakat
    qilaylik:
    byte a = 4;
    byte b = a + 70; // xato


    Bu
    yerda
    faqat
    qo'shilish
    natijasini
    oladigan
    o'zgaruvchining turi o'zgargan - int dan baytgacha. Ammo,
    biz dasturni kompilyatsiya qilmoqchi bo'lganimizda,
    kompilyatsiya bosqichida xatolikka yo'l qo'yamiz. Agar
    biz Visual Studio-da ishlayotgan bo'lsak, bu yerda xato
    borligini ko'rsatib, qizil chiziq bilan chiziqning pastki
    chizig'ini chizadi.
    Amaliyot davomida biz ma'lum bir turdagi saqlashi
    mumkin bo'lgan qiymatlar oralig'ini hisobga olishimiz
    kerak. Ammo bu holda biz olishni kutayotgan 74 soni bayt
    turidagi qiymatlar oralig'iga juda mos keladi, shunga
    qaramay, biz xatoga yo'l qo'yamiz.


    Haqiqat shundaki, agar operatsiya bit kengligi int dan
    kichik yoki unga teng bo'lgan (ya'ni bayt, qisqa, int turlari)
    ma'lumotlar sonini o'z ichiga oladigan bo'lsa, qo'shish (va
    ayirish) operatsiyasi int qiymatini qaytaradi. Shuning
    uchun a + 70 operatsiyasining natijasi xotirada 4 bayt
    uzunlikdagi ob'ekt bo'ladi. Keyin biz ushbu ob'ektni
    o'zgaruvchiga berishga harakat qilamiz, u bayt turi va
    xotirada 1 baytni egallaydi.
    byte a = 4;
    byte b = (byte)(a + 70);
    Turni
    konvertatsiya
    qilish
    operatsiyasi
    qavs
    ichida
    qiymatning konvertatsiya qilinadigan turini ko'rsatishni o'z
    ichiga oladi.


    Toraygan
    va
    kengaygan
    transformatsiyalar.
    Konversiyalar torayishi va kengayishi mumkin.
    Kengaytiruvchi transformatsiyalar xotiradagi ob'ekt
    hajmini kengaytiradi. Masalan:
    byte a = 4;
    // 0000100
    ushort b = a; // 000000000000100
    Bunday holda ushort tipidagi o'zgaruvchiga bayt
    tipidagi qiymat beriladi. Bayt turi 1 bayt (8 bit)
    bo'lib, a ning ikkilik qiymati quyidagicha ifodalanishi
    mumkin:
    00000100


    Ushort qiymati 2 bayt (16 bit). Va o'zgaruvchiga tayinlashda
    a o'zgaruvchisi qiymati 2 baytgacha kengaytiriladi.
    0000000000000100
    Ya'ni,
    kengligi
    8
    bit
    bo'lgan
    qiymat
    16
    bitgacha
    kengaytiriladi.
    Boshqa tomondan, tor konversiyalar qiymatni kamroq
    kenglik turiga qisqartiradi.
    ushort a = 4;
    byte b = (byte) a;
    Bu erda 8 bit uzunlikdagi b o'zgaruvchiga 16 bit bo'lgan
    ushort qiymati beriladi. Ya'ni, 0000000000000100 dan biz
    00000100 ni olamiz. Shunday qilib, qiymat 16 bitdan (2
    bayt) 8 bitgacha (1 bayt) torayadi.



    Download 1.21 Mb.
    1   2   3   4




    Download 1.21 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Mirzo Ulug’bek nomidagi O’zbekiston Milliy Universiteti Jizzax filiali

    Download 1.21 Mb.
    Pdf ko'rish