Compare commits

...

6 Commits

Author SHA1 Message Date
vojta@alfred 0f20d9c845 Readme: oprava zobrazeni svislice MD v tabulce. 2026-04-16 09:23:13 +02:00
vojta@alfred 35f1b10815 Oprava tabulky v readme. 2026-04-02 15:13:44 +02:00
vojta@alfred 4caa848c09 Formatovani readme. 2026-04-02 15:10:09 +02:00
vojta@alfred aca9b95604 Preklad T2B na Kubuntu 24.04. 2026-01-28 18:35:19 +01:00
50jt4 17183db1e4 Preklad noveho T2B pro Windows 10. 2026-01-28 18:32:35 +01:00
lruz dc2cafa317 úprava pro přesměrování ze souboru u t2b, v Makefile doplněno vytváření podadresáře bin pro binárky a upraven překlad do tohoto podadresáře. 2026-01-28 16:28:30 +01:00
6 changed files with 164 additions and 143 deletions
+11 -7
View File
@@ -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
+141 -134
View File
@@ -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.
Příklady:
01100001 --> a
0110000101100010 --> ab
0110000101100010 --> ab
Popis funkce T2B
@@ -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)
Regular → Executable
View File
Regular → Executable
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+12 -2
View File
@@ -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);