http://acm.tuit.uz - Мисол: Юқоридаги тушунтириш учун мисол қараймиз. Бунга иккита бутун ўзгарувчи m ва n қийматлар ва уларни 16 га бўлгандан сўнг қолдиқлар. Демак улар 4 та кичик ва 4 та катта байтларга киритилади. Сўнгра ҳосил қилинган байтнинг ичидагини кўриниши чоп этилади. Дастур бажарилиши изоҳлар орқали тушунтирилган. Бу ерда бирлашмани иштилишига эътиборни қаратиш лозим. Cod () функцияси Un бирлашмага кирувчи маълумотлар hh структура элементларига маълумотларни ёзишни амалга оширади. Натижа эса битта бит кўринишида яна шу Un бирлашмадан олинади. Binar () функция унга тескари бўлган ишни амалга оширади.
- #include
- #include
- #include
- int main ()
- {
- unsigned char k; int m,n;
- void binar(unsigned char); /* funksiya prototipi */
- unsigned char cod(int,int); /* funksiya prototipi */
- printf("\n m= ");
- scanf("%d",&m);
- printf(" n= ");
- scanf("%d",&n);
- k=cod(m,n);
- printf(" cod=%u",k);
- binar(k);
- }
- /* Ikkita butun sonni 16 ga bo’lgandagi qoldiqni baytga o’tkazish */
- unsigned char cod(int a, int b)
- {
- union
- {
- unsigned char z;
- struct
- {
- unsigned int x : 4; //Kichik bitlar
- unsigned int y : 4; //Katta bitlar
- } hh;
- } un ;
- un.hh.x=a%16;
- un.hh.y=b%16;
- return un.z;
- }
Do'stlaringiz bilan baham: |