jazykc  2013.3
upoljazykc
 All Classes Files Functions Variables Typedefs Macros Pages
cislice-dane-soustavy.c
Go to the documentation of this file.
1 
25 //Povolené knihovny
26 #include <stdio.h>
27 #include <stdlib.h>
28 
38 #define je_cislice(radix, znak)\
39  ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : ((znak)>='A'&&(znak)<='Z') ? (znak)-'A'<(radix) : 0)
40 
42 #define je_cislice2(radix, znak)\
43  ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : (((znak)|0x20)>='a'&&((znak)|0x20)<='z') ? ((znak)|0x20)-'a'<(radix) : 0)
44 
45 //makro na testovani:
46 #define test(radix, znak)\
47  printf("radix=%2d znak='%c' %s\n",(radix), (znak), je_cislice((radix), (znak))?"Ano":"Ne")
48 
49 #define test2(radix, znak)\
50  printf("radix=%2d znak='%c' %s\n",(radix), (znak), je_cislice2((radix), (znak))?"Ano":"Ne")
51 
52 int main(void) {
53 
54 if (je_cislice(8,'8')!=0) printf("Ano\n"); else printf ("Ne\n");//Ne
55 if (je_cislice(10+6,'0'+4)!=0) printf("Ano\n"); else printf ("Ne\n");//Ano
56 if (je_cislice(30,'@')!=0) printf("Ano\n"); else printf ("Ne\n");//Ne
57 
58 //dtto jako vyse:
59 test(8,'8');
60 test(10+6,'0'+4);//note: '0'+4 je '4'
61 test(30,'@');
62 
63 //nejake "okrajove" pripady:
64 test(2,'0');
65 test(2,'1');
66 test(2,'2');
67 test(36,'Z');
68 test2(36,'z');
69 
70 return EXIT_SUCCESS;
71 }
#define je_cislice(radix, znak)