evo jednog kratkog programa koji treba da prikaze zadati broj velicine 4 bajta, bajt po bajt pocevsi od bajta najmanje tezine:
#include <stdio.h>
#define MASKA 0xff
main()
{ int i;
long broj;
printf("\nBroj u heksadecimalnom obliku?");
scanf("%lx", &broj);
for(i=0;i<4;i++)
printf( "\n%#x", ( broj >> (8*i)) & MASKA );
}
program je korektan tj.radi a ja bih voleo da neko prokomentarise naredbu ( broj >> (8*i)) & MASKA )
naime, broj velicine 4B se prvo pomera udesno zbog veceg prioriteta a zatim se izvodi operacija & (logicko I) broja velicine 4B i maske velicine 1B, zasto je konacan rezultat ove naredbe broj velicine 1B? ako moze neko da objasni kroz brojevni primer !
#include <stdio.h>
#define MASKA 0xff
main()
{ int i;
long broj;
printf("\nBroj u heksadecimalnom obliku?");
scanf("%lx", &broj);
for(i=0;i<4;i++)
printf( "\n%#x", ( broj >> (8*i)) & MASKA );
}
program je korektan tj.radi a ja bih voleo da neko prokomentarise naredbu ( broj >> (8*i)) & MASKA )
naime, broj velicine 4B se prvo pomera udesno zbog veceg prioriteta a zatim se izvodi operacija & (logicko I) broja velicine 4B i maske velicine 1B, zasto je konacan rezultat ove naredbe broj velicine 1B? ako moze neko da objasni kroz brojevni primer !