Matnli xabarning axborot hajmini hisoblash (axborot xabari tarkibidagi ma'lumotlarning miqdori) ushbu xabardagi belgilar sonini, shu jumladan bo'shliqlarni hisoblash va bitta belgining axborot og'irligini aniqlashga bog'liq bo'lib, bu ushbu xabarni uzatishda va saqlashda foydalaniladi.
An'anaviy kodlashda bitta belgini kodlash uchun 1 bayt (8 bit) ishlatiladi. Ushbu qiymat bitta belgining axborot og'irligi. Ushbu 8 bitli kod bizga 256 xil belgini kodlash imkonini beradi, chunki ekanligi bizga ma’lum.
Hozirda har bir belgi uchun ikkita bayt (16 bit) ajratadigan yangi xalqaro standart Unicode keng tarqaldi. U ta turli xil belgilarni kodlash uchun ishlatilishi mumkin.
Xartli formulasi yoki Xartli o'lchovi - bu xabar tarkibidagi ma'lumot miqdorini belgilaydigan ma'lumotlarning logaritmik o'lchovidir.
{\displaystyle I=K\log _{2}N} Bu erda N - ishlatilgan alfavitdagi belgilar soni (alifbo kuchi), I - bu bitdagi belgi og’irligi.
Shunday qilib, matnli xabarning axborot hajmini hisoblash uchun formuladan foydalaniladi, bu yerda V - matnli xabarning bayt, kilobayt, megabayt bilan o'lchangan hajmi; K - xabardagi belgilar soni, i - bitta belgining bit bilan o'lchanadigan axborot og'irligi.
Misol keltiramiz.
1-misol.Alfavitda 32 ta harf mavjud. Bitta harf qancha ma'lumotga ega?
Yechish:
Alfavitning kuchi N = 32;
I – bitta belgi og’irligi;
Xartli formulasiga ko‘ra 32 = 2 5, i=5 bitta belgining og'irligini anglatadi;
Javob 5 bit.
2-misol. 16 belgidan iborat alifbodagi harflar bilan yozilgan xabar 10 belgidan iborat. U bitdagi qancha ma'lumotni o'z ichiga oladi?
Yechish:
Alfavitning kuchi N = 16;
i – bitta belgi og’irligi;
Xartli formulasiga ko‘ra 16 = 2 4, i=4 bitta belgining og'irligini anglatadi;
Matn a=10 ta belgidan iborat;
Axborot hajmi V=a*i=10*4 bit=40 bit
Javob: 40 bit.
3-misol. 300 bit hajmga ega ma'lumotli xabar 100 ta belgidan iborat. Alfavitning kuchi nimada?
Yechish:
Matn a=100 ta belgidan iborat;
Axborot hajmi V=a*i=300 bit
i – bitta belgi og’irligi i=300/ 100=3 bit
Alfavitning kuchi Xartli formulasiga ko‘ra N = 23=8
#include
#pragma hdrstop
#include "Unit2.h"
#include "Math.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{ float a,b;
a=StrToFloat(Edit1->Text);
b=log(a)/log(2);
Label1->Caption=FloatToStr(b);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
float a,b,c;
a=StrToFloat(Edit1->Text);
c=StrToFloat(Edit2->Text);
b=log(a)/log(2)*c;
Label2->Caption=FloatToStr(b);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{ Form1->Visible=true;
Form2->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button4Click(TObject *Sender)
{
Edit1->Text=" ";
Edit2->Text=" ";
Label1->Caption=" ";
Label2->Caption=" ";
}
//---------------------------------------------------------------------------
Do'stlaringiz bilan baham: |