195 lines
5.4 KiB
Markdown
195 lines
5.4 KiB
Markdown
B2T & T2B - BINARY TO TEXT & TEXT TO BINARY
|
|
===========================================
|
|
|
|
Jednoduché programy pro převod binárního řetězce na textový ASCII řetězec a naopak.
|
|
|
|
|
|
Popis funkce B2T
|
|
----------------
|
|
|
|
Na standardním vstupu očekává sekvenci nul a jedniček.
|
|
Na standardní výstup vypisuje 1 odpovídající ASCII znak pro každých 8 znaků vstupu.
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
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
|
|
make b2t . . . . přeloží pouze program "binary to text"
|
|
make t2b . . . . přeloží pouze program "text to binary"
|
|
make clean . . . odstraní spustitelné soubory
|
|
|
|
Překlad pomocí GCC:
|
|
gcc -DNDEBUG b2t.c -o b2t
|
|
gcc -DNDEBUG t2b.c -o t2b
|
|
|
|
|
|
Spuštění
|
|
--------
|
|
|
|
./b2t (Linux)
|
|
./t2b (Linux)
|
|
|
|
.\b2t.exe (Windows)
|
|
.\t2b.exe (Windows)
|
|
|
|
|
|
Přehled ASCII znaků a jejich číselných hodnot
|
|
---------------------------------------------
|
|
|
|
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)
|