Compare commits
8 Commits
0f9616146a
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f20d9c845 | |||
| 35f1b10815 | |||
| 4caa848c09 | |||
| aca9b95604 | |||
| 17183db1e4 | |||
| dc2cafa317 | |||
| b3c9758f3f | |||
| e9147ec73e |
@@ -1,16 +1,20 @@
|
|||||||
all:
|
all:
|
||||||
gcc -DNDEBUG b2t.c -o b2t
|
mkdir -p bin
|
||||||
gcc -DNDEBUG t2b.c -o t2b
|
gcc -DNDEBUG b2t.c -o bin/b2t
|
||||||
|
gcc -DNDEBUG t2b.c -o bin/t2b
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
gcc b2t.c -o b2t
|
mkdir -p bin
|
||||||
gcc t2b.c -o t2b
|
gcc b2t.c -o bin/b2t
|
||||||
|
gcc t2b.c -o bin/t2b
|
||||||
|
|
||||||
b2t:
|
b2t:
|
||||||
gcc -DNDEBUG b2t.c -o b2t
|
mkdir -p bin
|
||||||
|
gcc -DNDEBUG b2t.c -o bin/b2t
|
||||||
|
|
||||||
t2b:
|
t2b:
|
||||||
gcc -DNDEBUG t2b.c -o t2b
|
mkdir -p bin
|
||||||
|
gcc -DNDEBUG t2b.c -o bin/t2b
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f b2t t2b
|
rm -f bin/b2t bin/t2b
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ Na standardní výstup vypisuje 1 odpovídající ASCII znak pro každých 8 zna
|
|||||||
Vstup se zpracovává znak po znaku, délka vstupní zprávy je tedy dána limity standardního vstupu na daném systému.
|
Vstup se zpracovává znak po znaku, délka vstupní zprávy je tedy dána limity standardního vstupu na daném systému.
|
||||||
|
|
||||||
Příklady:
|
Příklady:
|
||||||
|
|
||||||
01100001 --> a
|
01100001 --> a
|
||||||
0110000101100010 --> ab
|
0110000101100010 --> ab
|
||||||
|
|
||||||
|
|
||||||
Popis funkce T2B
|
Popis funkce T2B
|
||||||
@@ -22,10 +23,13 @@ Popis funkce T2B
|
|||||||
|
|
||||||
Na standardním vstupu očekává řetězec ASCII znaků.
|
Na standardním vstupu očekává řetězec ASCII znaků.
|
||||||
Na standardní výstup vypisuje 8 binárních zanaků odpovídajících 1 ASCII znaku vstupu.
|
Na standardní výstup vypisuje 8 binárních zanaků odpovídajících 1 ASCII znaku vstupu.
|
||||||
|
Víceřádkový text lze zadat přesměrováním souboru (Příklad: ./t2b < soubor.txt)
|
||||||
|
(Proto nelze ruční zadávání ukončit klávesou Enter, ale 2xCTRL+Z na Windows (2xCTRL+D na Linuxu)).
|
||||||
|
|
||||||
Vstup se zpracovává znak po znaku, délka vstupní zprávy je tedy dána limity standardního vstupu na daném systému.
|
Vstup se zpracovává znak po znaku, délka vstupní zprávy je tedy dána limity standardního vstupu na daném systému.
|
||||||
|
|
||||||
Příklady:
|
Příklady:
|
||||||
|
|
||||||
c --> 01100011
|
c --> 01100011
|
||||||
cd --> 0110001101100100
|
cd --> 0110001101100100
|
||||||
|
|
||||||
@@ -34,6 +38,7 @@ Překlad
|
|||||||
-------
|
-------
|
||||||
|
|
||||||
Cíle pro program Make:
|
Cíle pro program Make:
|
||||||
|
|
||||||
make . . . . . . přeloží vše
|
make . . . . . . přeloží vše
|
||||||
make all . . . . stejné jako "make"
|
make all . . . . stejné jako "make"
|
||||||
make debug . . . přeloží vše s ladicími výstupy
|
make debug . . . přeloží vše s ladicími výstupy
|
||||||
@@ -42,6 +47,7 @@ Cíle pro program Make:
|
|||||||
make clean . . . odstraní spustitelné soubory
|
make clean . . . odstraní spustitelné soubory
|
||||||
|
|
||||||
Překlad pomocí GCC:
|
Překlad pomocí GCC:
|
||||||
|
|
||||||
gcc -DNDEBUG b2t.c -o b2t
|
gcc -DNDEBUG b2t.c -o b2t
|
||||||
gcc -DNDEBUG t2b.c -o t2b
|
gcc -DNDEBUG t2b.c -o t2b
|
||||||
|
|
||||||
@@ -49,143 +55,144 @@ Překlad pomocí GCC:
|
|||||||
Spuštění
|
Spuštění
|
||||||
--------
|
--------
|
||||||
|
|
||||||
./b2t (Linux)
|
- `./b2t` (Linux)
|
||||||
./t2b (Linux)
|
- `./t2b` (Linux)
|
||||||
|
|
||||||
b2t.exe (Windows)
|
- `.\b2t.exe` (Windows)
|
||||||
t2b.exe (Windows)
|
- `.\t2b.exe` (Windows)
|
||||||
|
|
||||||
|
|
||||||
Přehled ASCII znaků a jejich číselných hodnot
|
Přehled ASCII znaků a jejich číselných hodnot
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
Desítkově Dvojkově Znak Popis (anglicky)
|
| Desítkově | Dvojkově | Znak | Popis (anglicky) |
|
||||||
|
|-----------|----------|------|------------------------|
|
||||||
|
| 0 | 0 | NUL | null character |
|
||||||
|
| 1 | 1 | SOH | start of header |
|
||||||
|
| 2 | 10 | STX | start of text |
|
||||||
|
| 3 | 11 | ETX | end of text |
|
||||||
|
| 4 | 100 | EOT | end of transmission |
|
||||||
|
| 5 | 101 | ENQ | enquiry |
|
||||||
|
| 6 | 110 | ACK | acknowledge |
|
||||||
|
| 7 | 111 | BEL | bell (ring) |
|
||||||
|
| 8 | 1000 | BS | backspace |
|
||||||
|
| 9 | 1001 | HT | horizontal tab |
|
||||||
|
| 10 | 1010 | LF | line feed |
|
||||||
|
| 11 | 1011 | VT | vertical tab |
|
||||||
|
| 12 | 1100 | FF | form feed |
|
||||||
|
| 13 | 1101 | CR | carriage return |
|
||||||
|
| 14 | 1110 | SO | shift out |
|
||||||
|
| 15 | 1111 | SI | shift in |
|
||||||
|
| 16 | 10000 | DLE | data link escape |
|
||||||
|
| 17 | 10001 | DC1 | device control 1 |
|
||||||
|
| 18 | 10010 | DC2 | device control 2 |
|
||||||
|
| 19 | 10011 | DC3 | device control 3 |
|
||||||
|
| 20 | 10100 | DC4 | device control 4 |
|
||||||
|
| 21 | 10101 | NAK | negative acknowledge |
|
||||||
|
| 22 | 10110 | SYN | synchronize |
|
||||||
|
| 23 | 10111 | ETB | end transmission block |
|
||||||
|
| 24 | 11000 | CAN | cancel |
|
||||||
|
| 25 | 11001 | EM | end of medium |
|
||||||
|
| 26 | 11010 | SUB | substitute |
|
||||||
|
| 27 | 11011 | ESC | escape |
|
||||||
|
| 28 | 11100 | FS | file separator |
|
||||||
|
| 29 | 11101 | GS | group separator |
|
||||||
|
| 30 | 11110 | RS | record separator |
|
||||||
|
| 31 | 11111 | US | unit separator |
|
||||||
|
| 32 | 100000 | | space |
|
||||||
|
| 33 | 100001 | ! | exclamation mark |
|
||||||
|
| 34 | 100010 | " | quotation mark |
|
||||||
|
| 35 | 100011 | # | number sign |
|
||||||
|
| 36 | 100100 | $ | dollar sign |
|
||||||
|
| 37 | 100101 | % | percent sign |
|
||||||
|
| 38 | 100110 | & | ampersand |
|
||||||
|
| 39 | 100111 | ' | apostrophe |
|
||||||
|
| 40 | 101000 | ( | left parenthesis |
|
||||||
|
| 41 | 101001 | ) | right parenthesis |
|
||||||
|
| 42 | 101010 | * | asterisk |
|
||||||
|
| 43 | 101011 | + | plus sign |
|
||||||
|
| 44 | 101100 | , | comma |
|
||||||
|
| 45 | 101101 | - | hyphen |
|
||||||
|
| 46 | 101110 | . | period |
|
||||||
|
| 47 | 101111 | / | slash |
|
||||||
|
| 48 | 110000 | 0 | digit 0 |
|
||||||
|
| 49 | 110001 | 1 | digit 1 |
|
||||||
|
| 50 | 110010 | 2 | digit 2 |
|
||||||
|
| 51 | 110011 | 3 | digit 3 |
|
||||||
|
| 52 | 110100 | 4 | digit 4 |
|
||||||
|
| 53 | 110101 | 5 | digit 5 |
|
||||||
|
| 54 | 110110 | 6 | digit 6 |
|
||||||
|
| 55 | 110111 | 7 | digit 7 |
|
||||||
|
| 56 | 111000 | 8 | digit 8 |
|
||||||
|
| 57 | 111001 | 9 | digit 9 |
|
||||||
|
| 58 | 111010 | : | colon |
|
||||||
|
| 59 | 111011 | ; | semicolon |
|
||||||
|
| 60 | 111100 | < | less than |
|
||||||
|
| 61 | 111101 | = | equals to |
|
||||||
|
| 62 | 111110 | > | greater than |
|
||||||
|
| 63 | 111111 | ? | question mark |
|
||||||
|
| 64 | 1000000 | @ | at sign |
|
||||||
|
| 65 | 1000001 | A | uppercase A |
|
||||||
|
| 66 | 1000010 | B | uppercase B |
|
||||||
|
| 67 | 1000011 | C | uppercase C |
|
||||||
|
| 68 | 1000100 | D | uppercase D |
|
||||||
|
| 69 | 1000101 | E | uppercase E |
|
||||||
|
| 70 | 1000110 | F | uppercase F |
|
||||||
|
| 71 | 1000111 | G | uppercase G |
|
||||||
|
| 72 | 1001000 | H | uppercase H |
|
||||||
|
| 73 | 1001001 | I | uppercase I |
|
||||||
|
| 74 | 1001010 | J | uppercase J |
|
||||||
|
| 75 | 1001011 | K | uppercase K |
|
||||||
|
| 76 | 1001100 | L | uppercase L |
|
||||||
|
| 77 | 1001101 | M | uppercase M |
|
||||||
|
| 78 | 1001110 | N | uppercase N |
|
||||||
|
| 79 | 1001111 | O | uppercase O |
|
||||||
|
| 80 | 1010000 | P | uppercase P |
|
||||||
|
| 81 | 1010001 | Q | uppercase Q |
|
||||||
|
| 82 | 1010010 | R | uppercase R |
|
||||||
|
| 83 | 1010011 | S | uppercase S |
|
||||||
|
| 84 | 1010100 | T | uppercase T |
|
||||||
|
| 85 | 1010101 | U | uppercase U |
|
||||||
|
| 86 | 1010110 | V | uppercase V |
|
||||||
|
| 87 | 1010111 | W | uppercase W |
|
||||||
|
| 88 | 1011000 | X | uppercase X |
|
||||||
|
| 89 | 1011001 | Y | uppercase Y |
|
||||||
|
| 90 | 1011010 | Z | uppercase Z |
|
||||||
|
| 91 | 1011011 | [ | left square bracket |
|
||||||
|
| 92 | 1011100 | \ | backslash |
|
||||||
|
| 93 | 1011101 | ] | right square bracket |
|
||||||
|
| 94 | 1011110 | ^ | caret sign |
|
||||||
|
| 95 | 1011111 | _ | underscore |
|
||||||
|
| 96 | 1100000 | ` | backtick |
|
||||||
|
| 97 | 1100001 | a | lowercase a |
|
||||||
|
| 98 | 1100010 | b | lowercase b |
|
||||||
|
| 99 | 1100011 | c | lowercase c |
|
||||||
|
| 100 | 1100100 | d | lowercase d |
|
||||||
|
| 101 | 1100101 | e | lowercase e |
|
||||||
|
| 102 | 1100110 | f | lowercase f |
|
||||||
|
| 103 | 1100111 | g | lowercase g |
|
||||||
|
| 104 | 1101000 | h | lowercase h |
|
||||||
|
| 105 | 1101001 | i | lowercase i |
|
||||||
|
| 106 | 1101010 | j | lowercase j |
|
||||||
|
| 107 | 1101011 | k | lowercase k |
|
||||||
|
| 108 | 1101100 | l | lowercase l |
|
||||||
|
| 109 | 1101101 | m | lowercase m |
|
||||||
|
| 110 | 1101110 | n | lowercase n |
|
||||||
|
| 111 | 1101111 | o | lowercase o |
|
||||||
|
| 112 | 1110000 | p | lowercase p |
|
||||||
|
| 113 | 1110001 | q | lowercase q |
|
||||||
|
| 114 | 1110010 | r | lowercase r |
|
||||||
|
| 115 | 1110011 | s | lowercase s |
|
||||||
|
| 116 | 1110100 | t | lowercase t |
|
||||||
|
| 117 | 1110101 | u | lowercase u |
|
||||||
|
| 118 | 1110110 | v | lowercase v |
|
||||||
|
| 119 | 1110111 | w | lowercase w |
|
||||||
|
| 120 | 1111000 | x | lowercase x |
|
||||||
|
| 121 | 1111001 | y | lowercase y |
|
||||||
|
| 122 | 1111010 | z | lowercase z |
|
||||||
|
| 123 | 1111011 | { | left curly brace |
|
||||||
|
| 124 | 1111100 | \| | vertical bar |
|
||||||
|
| 125 | 1111101 | } | right curly brace |
|
||||||
|
| 126 | 1111110 | ~ | tilde |
|
||||||
|
| 127 | 1111111 | DEL | delete (rubout) |
|
||||||
|
|
||||||
0 0 NUL null character
|
|
||||||
1 1 SOH start of header
|
|
||||||
2 10 STX start of text
|
|
||||||
3 11 ETX end of text
|
|
||||||
4 100 EOT end of transmission
|
|
||||||
5 101 ENQ enquiry
|
|
||||||
6 110 ACK acknowledge
|
|
||||||
7 111 BEL bell (ring)
|
|
||||||
8 1000 BS backspace
|
|
||||||
9 1001 HT horizontal tab
|
|
||||||
10 1010 LF line feed
|
|
||||||
11 1011 VT vertical tab
|
|
||||||
12 1100 FF form feed
|
|
||||||
13 1101 CR carriage return
|
|
||||||
14 1110 SO shift out
|
|
||||||
15 1111 SI shift in
|
|
||||||
16 10000 DLE data link escape
|
|
||||||
17 10001 DC1 device control 1
|
|
||||||
18 10010 DC2 device control 2
|
|
||||||
19 10011 DC3 device control 3
|
|
||||||
20 10100 DC4 device control 4
|
|
||||||
21 10101 NAK negative acknowledge
|
|
||||||
22 10110 SYN synchronize
|
|
||||||
23 10111 ETB end transmission block
|
|
||||||
24 11000 CAN cancel
|
|
||||||
25 11001 EM end of medium
|
|
||||||
26 11010 SUB substitute
|
|
||||||
27 11011 ESC escape
|
|
||||||
28 11100 FS file separator
|
|
||||||
29 11101 GS group separator
|
|
||||||
30 11110 RS record separator
|
|
||||||
31 11111 US unit separator
|
|
||||||
32 100000 space
|
|
||||||
33 100001 ! exclamation mark
|
|
||||||
34 100010 " quotation mark
|
|
||||||
35 100011 # number sign
|
|
||||||
36 100100 $ dollar sign
|
|
||||||
37 100101 % percent sign
|
|
||||||
38 100110 & ampersand
|
|
||||||
39 100111 ' apostrophe
|
|
||||||
40 101000 ( left parenthesis
|
|
||||||
41 101001 ) right parenthesis
|
|
||||||
42 101010 * asterisk
|
|
||||||
43 101011 + plus sign
|
|
||||||
44 101100 , comma
|
|
||||||
45 101101 - hyphen
|
|
||||||
46 101110 . period
|
|
||||||
47 101111 / slash
|
|
||||||
48 110000 0 digit 0
|
|
||||||
49 110001 1 digit 1
|
|
||||||
50 110010 2 digit 2
|
|
||||||
51 110011 3 digit 3
|
|
||||||
52 110100 4 digit 4
|
|
||||||
53 110101 5 digit 5
|
|
||||||
54 110110 6 digit 6
|
|
||||||
55 110111 7 digit 7
|
|
||||||
56 111000 8 digit 8
|
|
||||||
57 111001 9 digit 9
|
|
||||||
58 111010 : colon
|
|
||||||
59 111011 ; semicolon
|
|
||||||
60 111100 < less than
|
|
||||||
61 111101 = equals to
|
|
||||||
62 111110 > greater than
|
|
||||||
63 111111 ? question mark
|
|
||||||
64 1000000 @ at sign
|
|
||||||
65 1000001 A uppercase A
|
|
||||||
66 1000010 B uppercase B
|
|
||||||
67 1000011 C uppercase C
|
|
||||||
68 1000100 D uppercase D
|
|
||||||
69 1000101 E uppercase E
|
|
||||||
70 1000110 F uppercase F
|
|
||||||
71 1000111 G uppercase G
|
|
||||||
72 1001000 H uppercase H
|
|
||||||
73 1001001 I uppercase I
|
|
||||||
74 1001010 J uppercase J
|
|
||||||
75 1001011 K uppercase K
|
|
||||||
76 1001100 L uppercase L
|
|
||||||
77 1001101 M uppercase M
|
|
||||||
78 1001110 N uppercase N
|
|
||||||
79 1001111 O uppercase O
|
|
||||||
80 1010000 P uppercase P
|
|
||||||
81 1010001 Q uppercase Q
|
|
||||||
82 1010010 R uppercase R
|
|
||||||
83 1010011 S uppercase S
|
|
||||||
84 1010100 T uppercase T
|
|
||||||
85 1010101 U uppercase U
|
|
||||||
86 1010110 V uppercase V
|
|
||||||
87 1010111 W uppercase W
|
|
||||||
88 1011000 X uppercase X
|
|
||||||
89 1011001 Y uppercase Y
|
|
||||||
90 1011010 Z uppercase Z
|
|
||||||
91 1011011 [ left square bracket
|
|
||||||
92 1011100 \ backslash
|
|
||||||
93 1011101 ] right-square-bracket-]
|
|
||||||
94 1011110 ^ caret-sign-^
|
|
||||||
95 1011111 _ underscore
|
|
||||||
96 1100000 ` backtick
|
|
||||||
97 1100001 a lowercase a
|
|
||||||
98 1100010 b lowercase b
|
|
||||||
99 1100011 c lowercase c
|
|
||||||
100 1100100 d lowercase d
|
|
||||||
101 1100101 e lowercase e
|
|
||||||
102 1100110 f lowercase f
|
|
||||||
103 1100111 g lowercase g
|
|
||||||
104 1101000 h lowercase h
|
|
||||||
105 1101001 i lowercase i
|
|
||||||
106 1101010 j lowercase j
|
|
||||||
107 1101011 k lowercase k
|
|
||||||
108 1101100 l lowercase l
|
|
||||||
109 1101101 m lowercase m
|
|
||||||
110 1101110 n lowercase n
|
|
||||||
111 1101111 o lowercase o
|
|
||||||
112 1110000 p lowercase p
|
|
||||||
113 1110001 q lowercase q
|
|
||||||
114 1110010 r lowercase r
|
|
||||||
115 1110011 s lowercase s
|
|
||||||
116 1110100 t lowercase t
|
|
||||||
117 1110101 u lowercase u
|
|
||||||
118 1110110 v lowercase v
|
|
||||||
119 1110111 w lowercase w
|
|
||||||
120 1111000 x lowercase x
|
|
||||||
121 1111001 y lowercase y
|
|
||||||
122 1111010 z lowercase z
|
|
||||||
123 1111011 { left curly brace
|
|
||||||
124 1111100 | vertical bar
|
|
||||||
125 1111101 } right curly brace
|
|
||||||
126 1111110 ~ tilde
|
|
||||||
127 1111111 DEL delete (rubout)
|
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -17,16 +17,26 @@ int main() {
|
|||||||
|
|
||||||
|
|
||||||
// hláška k zadání vstupu
|
// hláška k zadání vstupu
|
||||||
printf("Zadejte textovy vstup: ");
|
printf("Zadejte textovy vstup (rucni ukonceni pomoci 2xCTRL+Z na Windows (2xCTRL+D na Linuxu)): ");
|
||||||
|
|
||||||
// čtení prvního znaku vstupu
|
// čtení prvního znaku vstupu
|
||||||
in = fgetc(stdin);
|
in = fgetc(stdin);
|
||||||
|
|
||||||
|
// odřádkování po zadání dat, protože už nemáme Enter
|
||||||
|
fputc('\n', stdout);
|
||||||
|
|
||||||
// hláška o výstupu
|
// hláška o výstupu
|
||||||
printf("Zakodovany binarni vystup: ");
|
printf("Zakodovany binarni vystup: ");
|
||||||
|
|
||||||
// cyklus zpracování vstupu
|
// cyklus zpracování vstupu
|
||||||
while(in != EOF && in != '\n') {
|
// zrušena možnost Enter na konci, nešly načítat víceřádkové soubory
|
||||||
|
// technický popis chování:
|
||||||
|
//Using Control-D, you cause the terminal driver to make all the input typed so far on the line available
|
||||||
|
//for reading, even if you've not typed return. If you type, say, abc and then Control-D,
|
||||||
|
//the terminal driver makes the three characters abc available (and Control-D is not seen by the program).
|
||||||
|
//If you type Control-D again, or type return and then Control-D, then there are no more characters available,
|
||||||
|
//so the underlying read() system call returns 0, which the standard I/O system interprets as EOF.
|
||||||
|
while(in != EOF /*&& in != '\n'*/) {
|
||||||
|
|
||||||
// ladicí výpis aktuálního znaku
|
// ladicí výpis aktuálního znaku
|
||||||
debug("%c\n", in);
|
debug("%c\n", in);
|
||||||
|
|||||||
Reference in New Issue
Block a user