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: 20110209-Wed-bitove-operace.c
3 * Datum: 09.02.2011 13:03
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha:
7 ****************************************************/
8 #define _ISOC99_SOURCE
9 #define _GNU_SOURCE
10 #include <stdio.h>
11 /****************************************************
12 * Hlavní program.
13 ****************************************************/
14 int main(void) {
15 int i=0;
16 int a,b;
17
18 i=58;
19 printf("hexa: %X\n",i);
20 i=0x3A; // konstanta začíná 0x
21 printf("deka: %d\n",i);
22 i=072; // konstanta začíná 0
23 printf("okta: %o\n",i);
24
25 a=0xB5;
26 b=0x3C;
27 /* a 10110101 0xB5
28 * b 00111100 0x3C
29 * & ---------
30 * 00110100 0x34
31 * */
32 printf("%X & %X == %X\n",a,b,a&b);
33 /* a 10110101 0xB5
34 * b 00111100 0x3C
35 * | ---------
36 * 10111101 0xBD
37 * */
38 printf("%X | %X == %X\n",a,b,a|b);
39
40 /* a 10110101 0xB5
41 * b 00111100 0x3C
42 * ^ ---------
43 * 10001001 0x89
44 * */
45 printf("%X ^ %X == %X\n",a,b,a^b);
46 /*
47 * 10001001 0x89
48 * ~ 01110110 0x76
49 * */
50 printf("~(%X ^ %X) == %X\n",a,b,~(a^b));
51 /*
52 * 00000001 0x01
53 *<<3 00001000 0x08
54 * */
55 printf("%X << %X == %X\n",1,3,1<<3);
56
57 return 0;
58 }