Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".
1 /*
2 * Soubor: 20110128-Fri-hexa.c
3 * Datum: 28.01.2011 11:00
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha:
7 * Popis:
8 ****************************************************/
9 #define _ISOC99_SOURCE
10 #define _GNU_SOURCE
11 #include <stdio.h>
12 #include <stdbool.h>
13
14 /* *************** Makra ******************** */
15 #define ARREYC 1024
16
17 /* *************** Funkce ******************** */
18
19
20 /****************************************************
21 * Hlavní program.
22 ****************************************************/
23 int main(void) {
24 int i=0xff;
25
26 printf("%d\n",i);
27 printf("%x\n",i);
28 printf("%X\n",i);
29
30 int x=261;
31 /* bitový and a or */
32 printf("28 & 0F: %d\n", 28 & 0x0F);
33 printf("28 | 0xB6: %X\n", 28 | 0xB6);
34 printf("rotace %d\n", 1 << 3);
35 printf("2. byte čísla %d: %x\n",x, (x & 0xff00) >> 8 );
36 printf("1. byte čísla %d: %x\n",x, x & 0x00ff );
37
38 int maska=0x1 << 15;
39 printf("binární zápis čísla %d je ",x);
40 for (int i=15; i>=0; i--) {
41 printf("%1x", (x & maska) >> i );
42 maska >>= 1; // maska = maska >> 1;
43 if (i==8) {
44 putchar(' ');
45 }
46 }
47 putchar('\n');
48
49 return 0;
50 }