3-ma’ruza. Dasturlash tili strukturasi va dasturlash tilining leksemasi Reja


Xavfli va xavfsiz tipga keltirish



Download 81,9 Kb.
bet21/22
Sana28.05.2022
Hajmi81,9 Kb.
#613728
1   ...   14   15   16   17   18   19   20   21   22
Bog'liq
3-ma'ruza

Xavfli va xavfsiz tipga keltirish.

Axborotni yo'qotish xavfi mavjud bo’lmagan tipga keltirish xavfsizdir. Qoida tariqasida, bular bit chuqurligi past bo'lgan turdan yuqori bit chuqurlikka ega bo'lgan almashtirishlardir. Xususan, bu almashtirishlarning quyidagi zanjirlari mavjud hisoblanadi:


Xavfsiz tipga keltirishga misollar:


short a = 'g'; // char dan short tipiga keltirish


int b = 10;
double c = b; // int tipidan double tipiga keltirish
float d = 3.4;
double e = d; // float tipidan double tipiga keltirish
double f = 35; // int tipidan double tipiga keltirish

Ammo xavfli almashtirishlar ham mavjud. Bunday o'zgarishlar bilan biz ma'lumotlar aniqligini yo'qotishimiz mumkin. Qoida tariqasida, bular bit chuqurligi yuqori bo'lgan turdan pastroq chuqurlikdagi turga o'tishdir.


char letter = 295;
cout << letter;

Bunday holda, letter o'zgaruvchisiga char uchun doiradan tashqarida, ya'ni 255 dan katta qiymat berilmoqda.


Bunday misollarda ko'p narsa kompilyatorga bog'liq. Ba'zi hollarda kompilyatorlar kompilyatsiya paytida ogohlantirish berishadi, shunga qaramay dastur muvaffaqiyatli tuzilishi mumkin. Boshqa hollarda, kompilyatorlar hech qanday ogohlantirish bermaydilar. Aslida, bu dasturni muvaffaqiyatli tuzish xavfsiz, ammo shunga qaramay ma'lumotlarning aniqligini yo'qotish xavfi mavjud.
Qoida tariqasida, bunday hollarda kompilyatsiya paytida berilgan qiymat haqiqiy qiymatga qisqartiriladi. Masalan, yuqoridagi misolda 295 raqami 39 ga tushiriladi. Ya'ni quyidagi o'zgaruvchilar bir xil qiymatga ega bo'ladi:

char letter1 = 295;


char letter2 = 39;


Oshkor tipga keltirish. Tipga keltirishning oshkor usuli ham dasturlashda ko’p bora qo’llaniladi.
Oshkor turga keltirishda o’zgaruvchi oldiga qavs ichida boshqa tur nomi yoziladi:

#include


using namespace std;
int main()
{
int num1 = 54;
int num2;
float numb3 = 15.854;
num1 = (int) numb3; //oshkor keltirish
num2 = numb3; //oshkormas keltirish
cout << "Yangi integer (oshkor):"< cout << "Yangi integer (oshkormas):"< return 0;
}

Dastur natijasi:






Download 81,9 Kb.

Do'stlaringiz bilan baham:
1   ...   14   15   16   17   18   19   20   21   22




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish