Existuje nějaká logika, proč v binární abecedě, a = 01000001 a stejně jako ostatní písmena, nebo někdo jen náhodně vybral ten řetězec čísel, který představuje?


Nejlepší odpověď

Ano, existuje.

Dolní část 8bitového rozsahu je vyhrazena pro řídicí kódy. Zejména 00000000 nelze přiřadit textovému znaku, protože chcete, aby prázdná děrovačka znamenala , no … nic. Navíc je hezké mít možnost vyčistit chybu děrováním celého řádku, takže 11111111 bude přiřazen ovládacímu kódu DELETE a v kombinaci se skutečností, že textové znaky musí zapadnout do 7 bitů pro zpětnou kompatibilitu, to znamená horní část rozsahu bude vyhrazena také pro řídicí kódy.

Takže abecední znaky musí jít někam do středu. Bylo by vhodné, kdybyste mohli převádět mezi velkými a malými písmeny převrácením jednoho bitu, což znamená, že velká a malá písmena musí být oddělena rozpětím 32 (nejmenší síla dvou větších než 26). Je také výhodné, když písmena v případě velkých písmen sousedí s interpunkčními znaménky seskupenými na koncích, v 6 kódových bodech, které vám zbyly v každém rozsahu 32 znaků, a pokud posloupnost kódových bodů pro abecední znaky odpovídá jejich tradičnímu abecednímu pořadí. Bylo by ještě pohodlnější, kdybyste mohli převést abecední znak do jeho numerické abecední polohy pomocí jednoduché bitové masky.

To vše vážně omezuje možnosti, kde můžete začít abecedními znaky. Z této omezené škály možností bylo pro „A“ vybráno 65 nebo 0100001 a pro „A“ bylo zvoleno 97, nebo 01100001 (spíše než řekněme opačně), aby se udržel zpět kompatibilita se starými 5bitovými textovými systémy pouze pro velká písmena, ve kterých je „A“ ve skutečnosti přiřazen kódový bod 1 (00001), což umožňuje převod mezi kódováním jednoduchým přidáním nebo zkrácením předpony.

Odpověď

Jaká „binární abeceda“? Myslíš ASCII? Protože pokud to uděláte, pak se „a“ nerovná 0100 0001. Velké písmeno „A“ je ekvivalentní 0100 0001. Znak ASCII pro „a“ je 0110 0001. Zatímco pokud byste chtěli v EBCDIC napsat „a“, pro příklad, pak by to bylo 1000 0001 a A by bylo 1100 0001.

Prvních 32 znaků v tabulce ASCII je netisknutelných, řídících znaků, které byly původně použity k ovládání hardwaru – například 0000 0111 se nazývá BEL, protože to dříve fungovalo na zvonku na starých elektromechanických dálnopisech, pro které byl ASCII původně vynalezen. Vytištěné znaky začínají pouze na desetinném místě ASCII 33, přičemž interpunkční znaky jsou nejprve (!), Pak číslice, pak velká písmena, pak malá písmena, končící klávesou DEL na ASCII 127, což je samý horní konec 7 bitů, které se tehdy používaly čas.

Takže ne, někdo „nevybral náhodně řetězec čísel“, byl to standard vypracovaný Americkou asociací pro standardy (nyní ANSI) v roce 1960 na základě již existujících telegrafních kódů. Tento standard byl i nadále upgradován a rozšiřován, ale prvních 128 znaků a ovládacích prvků nebylo nikdy změněno.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *