Files
b2t/README.md
T
2026-04-02 15:13:44 +02:00

199 lines
9.0 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) |