Van-e logika arról, hogy a bináris ábécében miért az a = 01000001 és megegyezik a többi betűvel, vagy valaki csak véletlenszerűen választotta ki azt a számsort, hogy képviselje a?


Legjobb válasz

Igen, van.

A 8 bites tartomány alsó része a vezérlőkódoknak van fenntartva. Különösen a 00000000 nem rendelhető hozzá egy szöveges karakterhez, mert azt szeretné, hogy egy üres lyukkártya jelentése legyen, nos … semmi. Ezenkívül jó, hogy egy hibát egy teljes sor lyukasztásával tudunk kijavítani, így az 11111111 hozzárendelésre kerül a DELETE vezérlőkódhoz, és azzal együtt, hogy a szöveges karaktereknek 7 bitbe kell illeszkedniük a visszafelé kompatibilitás érdekében, ez azt jelenti a tartomány felső vége az ellenőrző kódok számára is fenntartásra kerül.

Tehát az ábécés karaktereknek valahol középen kell lenniük. Kényelmes lenne, ha a nagybetűk és a kisbetűk között egyetlen bit megfordításával tudna konvertálni, ami azt jelenti, hogy a kis- és nagybetűket 32-es skálával kell elválasztani (a 26-nál nagyobb kettő legkisebb ereje). Kényelmes az is, ha az eseten belüli betűk összefüggőek, az írásjelek a végén vannak csoportosítva, az egyes 32 karakteres tartományokban maradt 6 kódpontban, és ha az ábécés karakterek kódpontjainak sorrendje megegyezik a hagyományos ábécé sorrendjével. Még kényelmesebb lenne, ha egy ábécés karaktert egyszerű bitmaszkkal alakíthatna át numerikus ábécésorrendbe.

Mindez erősen korlátozza a lehetőségeket arra, hogy hol kezdje el az ábécés karaktereket. Ebből a korlátozott lehetőségek közül 65-et vagy 0100001-et választottak az „A” -ra, és a 97-et, vagy a 01100001-et az „a” -ra választották (nem pedig mondjuk fordítva) történelmi okokból, hogy visszafelé tartsák kompatibilitás a régi, csak 5 bites, csak nagybetűs szöveges rendszerekkel, amelyekben az „A” valójában 1-es kódpontot (00001) kapott, lehetővé téve a kódolások közötti átalakítást az előtag egyszerű hozzáadásával vagy csonkolásával.

Válasz

Milyen „bináris ábécé”? ASCII-re gondol? Mert ha igen, akkor az „a” nem egyenlő a 0100 0001. A nagybetűs „A” egyenértékű a 0100 0001. Az „a” ASCII karaktere 0110 0001. Míg ha az „a” -t EBCDIC-be szeretné írni, példa, akkor ez 1000 0001, A pedig 1100 0001.

Az ASCII tábla első 32 karaktere nem nyomtató jellegű, vezérlő karakter, amelyet eredetileg a hardver vezérléséhez használtak – például A 0000 0111 kódot BEL-nek hívják, mert ez a régi elektromechanikus teletípusú gépek csengőjét működtette, amelyekre az ASCII-t eredetileg kitalálták. A kinyomtatott karakterek csak az ASCII 33 tizedesjegynél kezdődtek, az írásjelek először (!), Majd számjegyeket, majd nagybetűket, majd kisbetűket írtak le, az ASCII 127-nél lévő DEL billentyűvel végződve, az ekkor használt 7 bit legvégén. idő.

Tehát nem, valaki nem „véletlenszerűen választott ki egy számsort”, ez egy szabvány volt, amelyet az Amerikai Szabványügyi Szövetség (ma ANSI) dolgozott ki 1960-ban, a már meglévő távíró kódok alapján. Ezt a szabványt tovább frissítették és bővítették, de az első 128 karaktert és a vezérlőket soha nem változtatták meg.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük