Amaliy mashg`ulot uchun Mundarija


Aniq va yashirin konversiyalar


Download 0.8 Mb.
bet14/56
Sana18.09.2023
Hajmi0.8 Mb.
#1680455
1   ...   10   11   12   13   14   15   16   17   ...   56
Bog'liq
Amaliy mashgulot sanoq sistema

Aniq va yashirin konversiyalar.
Yashirin konversiyalar
Konversiyani kengaytirishda kompilyator biz uchun barcha ma'lumotlarni o'zgartirishni amalga oshirdi, ya'ni konversiyalar yopiq edi (implicit conversion). Bunday transformatsiyalar hech qanday qiyinchilik tug'dirmaydi. Shunga qaramay, bunday o'zgarishlarning umumiy mexanikasi haqida bir necha so'z aytish mumkin. Kichik qiymatdan turdan katta qiymat turga o'girilganda, qiymati 0 ga teng bo'lgan qo'shimcha bitlar qo'shiladi, bu nol to'ldirish yoki zero extension deb nomlanadi.
bayt a = 4; // 0000100
ushort b = a; // 000000000000100
Belgilangan turga o'girilganda, bitning vakili raqam ijobiy bo'lsa, nollar bilan to'ldiriladi, agar raqam salbiy bo'lsa. Raqamning oxirgi raqamida bit belgisi mavjud - musbat sonlar uchun 0, salbiy sonlar uchun 1. Qo'shilgan bitlarga kengaytirilganda, belgi biti siqiladi. Musbat raqamni o'zgartirishni o'ylab ko'ring:
sbyte a = 4; // 0000100
short b = a; // 000000000000100

Manfiy raqamni aylantirish:


sbayt a = -4; // 1111100
short b = a; // 111111111111100

Aniq konversiyalar.
Aniq konversiyalar bilan (explicit conversion) biz o'zimiz konversion operatsiyani (operatsiya()) qo'llashimiz kerak. Turni konvertatsiya qilish operatsiyasining mohiyati shundan iboratki, qiymatdan oldin berilgan qiymat aylantirilishi kerak bo'lgan tur qavs ichida ko'rsatiladi:
int a = 4;
int b = 6;
byte c = (byte)(a+b);
Katta bit bilan turi uchun kichik bit bilan turi dan konvertatsiya kengaytirish tuzuvchi bevosita amalga oshiradi. Bu quyidagi o'zgarish zanjirlari bo'lishi mumkin:
byte -> short -> int -> long -> decimal
int -> double
short -> float -> double
char -> int
Barcha xavfsiz akslantirish avtomatik akslantirish quyidagi jadval bilan ta'riflash mumkin:


Download 0.8 Mb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling