21
“10011”
= 19, TABLE [ 19 ] = T, natija
“tvshVT”
;
Endi qoldiq bitlarni tekshiramiz agar qolgan bo’lsa(bitlar 0 katta bo’lsa);
U holda qoldiqni natijaluvchi satrga qoshamiz,
“101”
= 5, TABLE [5] = F;
Ushbu shifrlash algoritmi yakunlangandan so’ng
“tvshVTF”
tegan
tushunarsiz matn hosil bo’ladi;
Bu algoritmni C tilida ko’rinishi quyidagicha:
void
encode (
const char
* in,
char
* out)
{
int
bits = 0;
int
i = strlen(in), k = 0;
while
( i-- )
// i = 0 bo’lguncha davom etadi.
{
bits <<= 8;
// bits dagi bitlarni chapga 8 ta suramiz
bits |=
int
(in[i]) ;
// bits ga in satrdagi i-elementni bitlarini
qoshamiz.
out [ k++ ] = TABLE [ bits & 0x3F ];
// bits & 0x3F 6 bit ajratib
olish degani
bits >>= 6;
// bits dagi bitlarni 6 ta onga surish, qoldiq bitni olish
if
( bits >= 64)
// agar bits dagi qoldiq bitlar soni 6 kop yoki teng
bo’lsa
{
// yana bir bor 6 bit ajratib out o’zgaruvchiga qo’shamiz
out [ k++ ] = TABLE [ bits & 0x3F ];
bits >>= 6;
}
}
if
(bits != 0)
// bitlar soni 0 farqli bo’lsa u holda yana 6 bit
out [ k++ ] = TABLE [ bits & 0x3F ];
// ajratib natija satr
Do'stlaringiz bilan baham: