Vědět víc - vzdělávací portál pro zvídavé


Lab 2: ASCII

Slide

Pojďme si to vyzkoušet. Jako první příklad převedeme desítkové číslo na šestnáctkovou číslici. 

Pro připomenutí - desítková soustava používá 10 číslic (0,1,2,3,4,5,6,7,8,9). Ty všichni známe. Šestnáctková soustava potřebuje 16 číslic. Pro číslice větší než 9 však nemáme žádné vyjádření. Takové číslice prostě neexistují. Nic nám ale nebrání použít písmena. A to se také dělá. S písmeny pak pracujeme jako s čísly (přesněji s číslicemi). Šestnáctková soustava tedy používá následující číslice: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F (písmena mohou být i malá, my použijeme velká). 

Číslice 0 – 9 nepředstavují problém. Prostě je vezmeme tak, jak jsou a mohli bychom je vytisknout. My ale chceme znak, takže je musíme zakódovat pomocí ASCII kódu. Číslice jsou v ASCII kódu kódované od hodnoty 48. Stačí tedy k hodnotě 48 přičíst číslici a máme výsledek. 

Větší hodnoty ale problémem jsou. S výhodou však můžeme použít vlastnost ASCII kódu, a to je skutečnost, že písmena mají rostoucí hodnoty dle abecedy. 

Písmeno A je kódováno jako 65, písmenu B jako 66, C jako 67 a tak dále. 

Máme-li tedy číslo od 10 do 15, stačí nám od něj odečíst 10 a přičíst 65. Což je stejné jako přičíst 55. 

Na závěr pak použijeme funkci CHR$, abychom z hodnoty ASCII dostali znak. A je to. Program je zde: 

DIM Cislo AS INTEGER 
DO 
    INPUT "Zadejte cislo od 0 do 15 =>>", Cislo 
LOOP UNTIL Cislo >= 0 AND Cislo < 16 
IF Cislo < 10 THEN 
    PRINT CHR$(48 + Cislo) 
ELSE 
    PRINT CHR$(55 + Cislo) 
END IF 

Neviditelné znaky přidáme do řetězce pomocí funkce CHR$. Následující program to dělá. Zkuste, jak se v BASICu chovají různé znaku s hodnotami od 0 do 31. 

DIM text AS STRING 
text = "Ahoj" 
PRINT text 
text = text + CHR$(13) + "Lumpove" 
PRINT text