Dasturlash

Binary Ma'lumotni Saklashning Qiziq Tushunchasi

28-sentabr, 2026, 12:030 ko'rish3 daqiqa o'qish
Binary Ma'lumotni Saklashning Qiziq Tushunchasi

Ma'lumotni saqlashning eng mashhur usullaridan biri JSON formatidir. Lekin, ba'zida JSON formatidan farqli ravishda binary formatda ma'lumotni saqlash afzalliklarga ega bo'lishi mumkin. Bu maqolada binary ma'lumotni saqlashning qiziq tushunchasi va ushbu usulning amaliy qo'llanilishi haqida gap boradi.

Binary Ma'lumotni Saklashning Afzalliklari

JSON formatida ma'lumotni saqlashning asosiy kamchiliklaridan biri bu ma'lumot hajmining katta bo'lishi. Bu esa serverlar va klientlar o'rtasidagi ma'lumot almashinuvi tezligini kamaytirishi mumkin. Binary formatda ma'lumotni saqlash esa ma'lumot hajmining kamayishiga olib keladi, natijada ma'lumot almashinuvi tezligi oshadi.

"hello world"

Binary formatda ma'lumotni saqlashning yana bir afzalligi bu ma'lumotni tezroq o'qish va yozish imkoniyatidir. Bu esa dasturlarning ish tezligini oshiradi va foydalanuvchilar uchun yaxshiroq tajribani ta'minlaydi.

104 101 108 108 111    32     119 111 114 108 100
 h   e   l   l   o   [SPACE]   w   o   r   l   d

Binary Ma'lumotni Saklashning Asoslari

Binary ma'lumotni saqlashning asosini tushunish uchun ASCII kodlash usulini bilish kerak. Masalan, "hello world" matnini ASCII kodlash usulida ifodalash mumkin. Bu matn 11 ta harfdan iborat bo'lganligi uchun 11 ta byte (8 bit) joy oladi.

h        e        l
01101000 01100101 01101100 

l        o        [SPACE]
01101100 01101111 00100000 

w        o        r
01110111 01101111 01110010 

l        d
01101100 01100100

Lekin, agar biz ma'lumotni binary formatda saqlashni xohlarsak, biz ma'lumot turini belgilashimiz kerak. Masalan, agar biz 104 sonini saqlashni xohlarsak, biz uni ASCII kodlash usulida "104" deb yozishimiz mumkin. Lekin, bu 3 ta byte joy oladi. Agar biz 1 ta byte joy oladigan usulni topishimiz mumkin bo'lsa, bu ma'lumotni saqlashni 2 ta byte tejaydi.

FILE *f = fopen("file.bin", "wb");

unsigned char data[] = "hello world";
fwrite(data, 1, sizeof(data) - 1, f);

fclose(f);

Bu maqsadga erishish uchun biz ma'lumot turini belgilash uchun bir nechta usullarni qo'llashimiz mumkin. Masalan, biz birinchi byte ni ma'lumot turini belgilash uchun ishlatishimiz mumkin. Agar biz 0 ni integer, 1 ni string deb belgilashimiz mumkin bo'lsa, biz 104 sonini 00000000 01101000 deb yozishimiz mumkin.

'1' '0' '4' → 49 48 52

Binary Ma'lumotni Saklashning Amaliy Qo'llanilishi

Binary ma'lumotni saqlashning amaliy qo'llanilishi uchun biz bir nechta misollarni ko'rsatishimiz mumkin. Masalan, agar biz "userid": 123 ma'lumotini saqlashni xohlarsak, biz uni binary formatda quyidagicha yozishimiz mumkin: [TYPE:STRING][LENGTH:6][WORD:userid][TYPE:INT][LENGTH:-][DATA:123].

[TYPE][DATA]

Bu usul bilan biz ma'lumotni saqlashni 2 ta byte tejay olamiz. Lekin, bu usulning kamchiliklaridan biri bu ma'lumot turini belgilash uchun bir nechta byte larni ishlatishimiz kerak bo'lishidir. Bu esa ma'lumotni saqlashni murakkablashtirishi mumkin.

00000000 01101000

Bu muammoga erishish uchun biz bir nechta usullarni qo'llashimiz mumkin. Masalan, biz ma'lumot turini belgilash uchun bir nechta bit larni ishlatishimiz mumkin. Bu esa ma'lumotni saqlashni murakkablashtirishi mumkin, lekin ma'lumotni saqlashni tezroq qilish imkoniyatini beradi.

00000001 01101000

Xulosa

Binary ma'lumotni saqlashning qiziq tushunchasi va ushbu usulning amaliy qo'llanilishi haqida gap boradi. Bu usul ma'lumotni saqlashni tezroq va samarali qilish imkoniyatini beradi. Lekin, bu usulning kamchiliklari ham bor. Bu esa dasturchilar uchun ushbu usulni qanday qo'llashni bilish kerakligini anglatadi.

Asl manba: hereticpleb.vercel.app

Manba: Hacker News
#binary #data #json #saving #optimization
Telegram da muhokama qilish