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: 20110131-Mon-bitoper.c
3 * Datum: 31.01.2011 10:20
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: bitové operace
7 * Popis: >> << & |
8 ****************************************************/
9 #define _GNU_SOURCE
10 #include <stdio.h>
11
12 /****************************************************
13 * Hlavní program.
14 ****************************************************/
15 int main(void) {
16
17 /* 0010 1011 == 43
18 * 0011 1100 == 60
19 * ---------- &
20 * 0010 1000 == 40 */
21 printf("%d & %d == %d \n",43,60, 43 & 60);
22 puts("hexa");
23 printf("%X & %X == %X \n",43,60, 43 & 60);
24 /* to stejné ale konstantu 43 zapíšu v hexa */
25 printf("%X & %X == %X \n",0x2B,60, 43 & 60);
26
27 /* to stejné ale ale osmičkově*/
28 puts("osmičkově");
29 printf("%o & %o == %o \n",053,60, 43 & 60);
30
31 /* 0010 1011 == 43
32 * 1111 0000 == 0xF0
33 * ---------- |
34 * 1111 1011 == 0xFB */
35 puts("součet");
36 printf("%X | %X == %X \n",43, 0xF0, 43 | 0xF0);
37
38 /* 0010 1011 == 43
39 * 1111 0000 == 0xF0
40 * ---------- ^
41 * 1101 1011 == 0xDB */
42 puts("ekvivalence");
43 printf("%X ^ %X == %X \n",43, 0xF0, 43 ^ 0xF0);
44
45 /* 1101 1011 == 0xDB
46 *~0010 0100 == 0x24*/
47 printf("~ %X == %X \n",0xDB, ~0xDB);
48
49
50 return 0;
51 }