/*
 * Soubor:  20110207-Mon-dec2x.c
 * Datum:   07.02.2011 10:23
 * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
 * Licence: GNU/GPL 
 * Úloha:   program převede číslo z dekadické soustavy do osmičkové (oktalové),
 *          šestnáctkové(hexadecimální) a dvojkové (binární)
 ****************************************************/
#define _ISOC99_SOURCE
#define _GNU_SOURCE
#include <stdio.h>

/* ***************    Makra    ******************** */

/* ***************   Funkce    ******************** */

/****************************************************
 *               Hlavní program.
 ****************************************************/
int main(void)
{
    int cislo;

    scanf("%d", &cislo);
    printf("16: %X\n", cislo);
    printf("10: %d\n", cislo);
    printf(" 8: %o\n", cislo);
    printf(" 2: ");

    /* tisk posledních dvou byte-u */
    //int maska = 0x80;
    //int maska = 32768;
    int maska = 1 << 15;
    /* výpis hodnoty jednoho bitu, který je určen maskou */
    for (int i = 1; i <= 16; i++) {
        /*if ((cislo & maska) > 0) {
           putchar('1');
           } else {
           putchar('0');
           } */
        printf("%d", (cislo & maska) > 0 ? 1 : 0);
            if (i % 4 == 0) {
            if (i % 8 == 0) {
                putchar('.');
            } else {
                putchar(' ');
            }
        }
        //maska = maska >> 1;
        maska >>= 1;
    }
    putchar('\n');

    return 0;
}

