|
Butun sonli tiplarning nomi, hajmi va qiymatlar chegarasi
|
bet | 56/178 | Sana | 13.05.2024 | Hajmi | 14,73 Mb. | | #230019 |
Bog'liq Darslik 01.05.2023Butun sonli tiplarning nomi, hajmi va qiymatlar chegarasi
t/r
|
Toifa nomi
|
Hajm, bit
|
Qiymatlar chegarasi
|
1.
|
Int
|
4 bayt
|
–2147483647 ... 2147483647
|
2.
|
unsigned int
|
4 bayt
|
0 ... 4294967295
|
4.
|
short int
|
2 bayt
|
–32767 ... 32767
|
5.
|
long int
|
4 bayt
|
–2147483647 ... 2147483647
|
6.
|
unsigned short int
|
2 bayt
|
0 ... 65535
|
8.
|
long long int
|
8 bayt
|
–(263–1) ... (263–1)
|
10.
|
unsigned long int
|
4 bayt
|
0 ... 4294967295
|
11.
|
unsigned long long int
|
8 bayt
|
0 ... 264–1
|
Jadvalda keltirilgan butun sonli o‘zgaruvchilarni tavsiflashga quyidagi misolni keltirish mumkin:
int x, y, z;
unsigned long int M, N, K;
Haqiqiy sonlar. Haqiqiy sonli o‘zgaruvchilarga oid misol va masalalarni dasturlashda float yoki double tiplaridan foydalaniladi. Haqiqiy sonning kompyuter xotirasidagi ko‘rinishi, butun sonning tasviridan farq qiladi. Son mE ± p eksponensial shaklida ifodalanadi. Bu yerda m – mantissa (o‘nli ko‘rinishdagi butun yoki kasr son), p – tartibi (butun son). Eksponensial yozuvdagi sonni odatdagi yozuvga aylantirish uchun, mantissa (m) ni tartib (p)ning o‘ninchi darajasiga ko‘paytirish kerak. Masalan,
,
.
Odatda float tipi kompyuter xotirasidan 4 bayt joy egallaydi, shundan bitta ikkilik bit belgiga, 8 bit tartibga va 23 mantissaga beriladi.
double tipidagi qiymatlar kompyuter xotirasidan 8 bayt joy egallaydi, unda tartib va mantissa uchun mos ravishda 11 va 52 bit ajratilgan. Mantissaning uzunligi sonni aniqligini belgilaydi va tartibi uzunligi esa uning diapazoni anglatadi. double tip nomi oldida long xizmatchi so‘zi yozilsa, xotiradan 10 bayt joy ajratiladi. Haqiqiy tiplarning toifa nomi, hajmi va qiymatlar chegarasi 3.6-jadvalda keltirilgan.
Haqiqiy tiplar
2.1.6-jadval
Haqiqiy sonli tiplarning nomi, hajmi va qiymatlar chegarasi
t/r
|
Toifa nomi
|
Hajm, bit
|
Qiymatlar chegarasi
|
1.
|
float
|
4
|
3.4Е-38 ... 3.4E+38
|
2.
|
double
|
8
|
1.7Е-308 ... 1.7E+308
|
3.
|
long double
|
10
|
3.4Е-4932 ... 3.4E+4932
|
Jadvalda keltirilgan haqiqiy sonli o‘zgaruvchilarni tavsiflashga quyidagi misollarni keltirish mumkin:
float x1, y1, z1;
double a, b, c;
Mantiqiy tiplar. Mantiqiy tiplar bool xizmatchi so‘zi orqali e’lon qilinadi. bool o‘zgaruvchisi faqat ikkita true (rost) yoki false (yolg‘on) qiymatga ega bo‘lishi mumkin. Har qanday nolga teng bo‘lmagan qiymat true deb talqin qilinadi va butun songa aylantirilganda 1 ga teng bo‘ladi. false esa xotirada 0 sifatida ifodalanadi. Mantiqiy tipdagi o‘zgaruvchilarni tavsiflashga quyidagi misolni keltirish mumkin:
bool k, m;
void tipi. Ushbu tipdagi qiymatlar bo‘sh to‘plam hisoblanib, hech qanday qiymat qabul qilmaydi. Bundan faqat qiymat o‘zlashtirmaydigan funksiyalar (protseduralar) ni e’lon qilishda foydalaniladi.
O‘zgarmaslar. Ba’zi hollarda dasturlarda o‘zgarmas qiymatlar bilan ishlash lozim bo‘ladi. Masalan, , n=20, e=2.71 kabi sonlar C++ dasturlash tilida quyidagi ko‘rinishda e’lon qilinadi: const toifa_nomi konstanta_nomi=konstanta_qiymati.
Misol uchun: const double E=2.718282; const float PI=3.1415; const long m=99999999.
const r=50 misolda konstanta toifasi ko‘rsatilmagan, bu konstanta int toifasiga tegishli deb hisoblanadi.
Shu bilan birga, o‘zgarmaslarni #define direktivasi yordamida ham aniqlash mumkin. Ushbu ko‘rsatma tez-tez ishlatiladigan o‘zgarmaslarni, kalit so‘zlarni, operatorlarni yoki ifodalarni ba’zi identifikatorlar bilan almashtirish uchun ishlatiladi. Matn yoki raqamli o‘zgarmaslarni almashtiradigan identifikatorlar nomlangan o‘zgarmaslar deyiladi.
Ushbu #define direktivasidan foydalanish quyidagicha:
#define identifikator matni
Masalan:
#define PI 3.141592653589793 int main ()
…
|
| |