Compare commits
6 Commits
b3c9758f3f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f20d9c845 | |||
| 35f1b10815 | |||
| 4caa848c09 | |||
| aca9b95604 | |||
| 17183db1e4 | |||
| dc2cafa317 |
@@ -1,16 +1,20 @@
|
||||
all:
|
||||
gcc -DNDEBUG b2t.c -o b2t
|
||||
gcc -DNDEBUG t2b.c -o t2b
|
||||
mkdir -p bin
|
||||
gcc -DNDEBUG b2t.c -o bin/b2t
|
||||
gcc -DNDEBUG t2b.c -o bin/t2b
|
||||
|
||||
debug:
|
||||
gcc b2t.c -o b2t
|
||||
gcc t2b.c -o t2b
|
||||
mkdir -p bin
|
||||
gcc b2t.c -o bin/b2t
|
||||
gcc t2b.c -o bin/t2b
|
||||
|
||||
b2t:
|
||||
gcc -DNDEBUG b2t.c -o b2t
|
||||
mkdir -p bin
|
||||
gcc -DNDEBUG b2t.c -o bin/b2t
|
||||
|
||||
t2b:
|
||||
gcc -DNDEBUG t2b.c -o t2b
|
||||
mkdir -p bin
|
||||
gcc -DNDEBUG t2b.c -o bin/t2b
|
||||
|
||||
clean:
|
||||
rm -f b2t t2b
|
||||
rm -f bin/b2t bin/t2b
|
||||
|
||||
@@ -13,6 +13,7 @@ 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.
|
||||
|
||||
Příklady:
|
||||
|
||||
01100001 --> a
|
||||
0110000101100010 --> ab
|
||||
|
||||
@@ -22,10 +23,13 @@ Popis funkce T2B
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Příklady:
|
||||
|
||||
c --> 01100011
|
||||
cd --> 0110001101100100
|
||||
|
||||
@@ -34,6 +38,7 @@ Překlad
|
||||
-------
|
||||
|
||||
Cíle pro program Make:
|
||||
|
||||
make . . . . . . přeloží vše
|
||||
make all . . . . stejné jako "make"
|
||||
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
|
||||
|
||||
Překlad pomocí GCC:
|
||||
|
||||
gcc -DNDEBUG b2t.c -o b2t
|
||||
gcc -DNDEBUG t2b.c -o t2b
|
||||
|
||||
@@ -49,143 +55,144 @@ Překlad pomocí GCC:
|
||||
Spuštění
|
||||
--------
|
||||
|
||||
./b2t (Linux)
|
||||
./t2b (Linux)
|
||||
- `./b2t` (Linux)
|
||||
- `./t2b` (Linux)
|
||||
|
||||
.\b2t.exe (Windows)
|
||||
.\t2b.exe (Windows)
|
||||
- `.\b2t.exe` (Windows)
|
||||
- `.\t2b.exe` (Windows)
|
||||
|
||||
|
||||
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.
@@ -17,16 +17,26 @@ int main() {
|
||||
|
||||
|
||||
// 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
|
||||
in = fgetc(stdin);
|
||||
|
||||
// odřádkování po zadání dat, protože už nemáme Enter
|
||||
fputc('\n', stdout);
|
||||
|
||||
// hláška o výstupu
|
||||
printf("Zakodovany binarni vystup: ");
|
||||
|
||||
// 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
|
||||
debug("%c\n", in);
|
||||
|
||||
Reference in New Issue
Block a user