/*
 * Soubor:  20110128-Fri-hexa.c
 * Datum:   28.01.2011 11:00
 * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
 * Licence: GNU/GPL 
 * Úloha: 
 * Popis:   
 ****************************************************/
#define _ISOC99_SOURCE
#define _GNU_SOURCE
#include <stdio.h>
#include <stdbool.h>

/* ***************    Makra    ******************** */
#define ARREYC 1024

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


/****************************************************
 *               Hlavní program.
 ****************************************************/
int main(void) {
    int i=0xff;

    printf("%d\n",i);
    printf("%x\n",i);
    printf("%X\n",i);

    int x=261;
    /* bitový and a or */
    printf("28 & 0F: %d\n", 28 & 0x0F);
    printf("28 | 0xB6: %X\n", 28 | 0xB6);
    printf("rotace %d\n", 1 << 3);
    printf("2. byte čísla %d: %x\n",x, (x & 0xff00) >> 8  );
    printf("1. byte čísla %d: %x\n",x,  x & 0x00ff );

    int maska=0x1 << 15;
    printf("binární zápis čísla %d je ",x);
    for (int i=15; i>=0; i--) {
        printf("%1x", (x & maska) >> i ); 
        maska >>= 1;  // maska = maska >> 1;
        if (i==8) {
            putchar(' ');
        }
    }
    putchar('\n');

    return 0;
}

