24
Bu yerda
in
argumentida shifrlangam matn beriladi(bu bizda
“tvshVTF”
ga teng)
out
argumentda esa oddiy matn hosil bo’ladi(bu bizda
“Salom”
)
Base64
algoritmining C tilidagi to’liq kodi:
#include
#include
const
char
TABLE[65]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst
uvwxyz0123456789+/";
int
indexOf(
const char
c)
{
for
(
int
i = 0; i < 64; i++)
if
(c == TABLE[i])
return
i;
return
-1;
}
void
encode(
const char
* in,
char
* out)
{
int
bits = 0;
int
i = strlen(in), k = 0;
while
( i-- )
{
bits <<= 8;
bits |= in [ i ] ;
out [ k++ ] = TABLE [ bits & 0x3F ];
bits >>= 6;
if
( bits > 64)
{
out [ k++ ] = TABLE [ bits & 0x3F ];
bits >>= 6;
}
}
if
(bits != 0)
out [ k++ ] = TABLE [ bits & 0x3F ];
out[ k ] = '\0';
}
void
decode(
const char
* in,
char
* out)
{
int
bits = 0;
int
i = strlen( in ), k = 0;
26
navbatlardan
W
j,k
ma’lumotlar elementlari olib tashlanadi. Qachonki
v
k
ga mos
operatsiya tugallansa, u holda u
v
k
tugundan
v
r
tugunga yo`naltirilgan har bir
(v
k
,v
r
)
yoylarga mos navbatlarda
V
k,r
ma’lumotlar elementlarida joylashadi.
1.1-rasm.
Hisoblash graflari
1.1-rasmda hisoblash graflariga misol tasvirlangan. Boshlang’ich holatda
v
1
tugun tayyorlanganki, u bitta kirishga ega va bu kirish navbatida ma’lumotning
3 ta elementi ishtirok etadi.
v
1
ning bajarilishida u navbatlardagi ma’lumotning
bitta elementini olib tashlaydi va operatsiya tugallanishida ma’lumot
elementlaridan biri
v
1
dan
v
2
dagi yoyda, yana biri
v
1
dan
v
8
dagi yoyda joylashadi.
Ushbu yangi holatda yoki
v
1
,
yoki
v
2
huddi ikalasi ham porogli shartni
qanoatlantirishi uchun kirish navbatlaridagi ma’lumotlarning yetarlicha
elementlariga ega bo`lganidek bajarilishi mumkin.
Hisoblash graflari Petri tarmoqlarida oson modellashtiriladi. Har bir yoy
vaziyatlarni ifodalaydi, hisoblash graflarning har bir tuguni esa o`tishlarni
shakllantiradi.
v
k
tugunga mos o`tishlar
v
j
dan
v
k
gacha yoylarni ifodalaydigan
vaziyatlarning
T
j,k
kirish yoyiga ega bo`ladi. Bu qachonki porogli shart
bajarilgandagina o`tishlarning tayyorlanganligini kafolatlaydi. Biroq, o`tishlar
yuklanganda u faqatgina
W
j,k
toshchani olib tashlashi mumkin, shuning uchun
T
j,k
– W
j,k
yoyi
v
k
o`tishlardan
v
j
dan
v
k
gacha yoylarni ifodalaydigan vaziyatlarga
teskari yo`naltiriladi. Bundan tashqari,
V
k,r
belgi
v
j
dan
v
k
gacha yoylarni
ifodalaydigan vaziyatlarda joylashadi. Boshlang’ich belgilash
I
j,k
qiymati bilan
aniqlanadi.
Do'stlaringiz bilan baham: