#include #define BYTESIZE 8 #define INTSIZE (sizeof(int)*BYTESIZE) /* vrne 4*8 ?*/ #define NUMDIGITS (INTSIZE/3 + (INTSIZE%3 != 0)) /*v oktalni abecedi 8 crk-osmisko, maskiramo zadnja tri mesta */ #define MASK 7 /*00000111*/ void octal(num) unsigned num; { int nonzero, d, msdigit; nonzero=0; for (d=NUMDIGITS-1; d>=0; d--) { msdigit=num>> d*3&MASK; /*num premaknemo za*/ nonzero=nonzero||msdigit; if(nonzero) putchar(msdigit+'0'); } if(!nonzero) putchar('0'); } main() { printf("Intsize %u\n" , INTSIZE); printf("Numdigits %u\n" , NUMDIGITS); printf("Izpisujem osmisko 11: "); octal((unsigned)11); printf("\n"); }