Hvis du noen gang har behov for å jobbe med ASCII-verdier, er en oppslagstabell avgjørende.
ASCII-tabellen bruker tall for å representere sifre, bokstaver og vanlige symboler fra det engelske alfabetet. ASCII står for American Standard Code for Information Interchange.
Ordet ble først brukt av ANSI (American National Standards Institute) i 1973 for å fylle behovet i dette feltet. Så hvordan ser ASCII-tabellen ut og hvordan kan du bruke den?
Hva er en ASCII-tabell og hva inneholder den?
ASCII er et tegnkodingssystem som letter grunnleggende datakommunikasjon. Den gir en standard for tekstrepresentasjon, som lar datamaskiner gjenkjenne og tolke ASCII-verdier universelt.
Hver bokstav, tall og symbol som ASCII kan representere har en unik verdi. Hvis du for eksempel undersøker ASCII-tabellen nedenfor, vil du se at store ASCII-verdier starter på 65, den store bokstaven A. På samme måte starter små ASCII-verdier på 97, den lille bokstaven a.
Disse verdiene fungerer som numeriske representasjoner av tegn, noe som muliggjør enkel konvertering mellom tall og tekst.
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
Karakter |
ASCII |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
NUL |
16 |
DEL |
32 |
SP |
48 |
0 |
64 |
@ |
80 |
P |
96 |
` |
112 |
s |
1 |
SOH |
17 |
DC1 |
33 |
! |
49 |
1 |
65 |
EN |
81 |
Q |
97 |
en |
113 |
q |
2 |
STX |
18 |
DC2 |
34 |
" |
50 |
2 |
66 |
B |
82 |
R |
98 |
b |
114 |
r |
3 |
ETX |
19 |
DC3 |
35 |
# |
51 |
3 |
67 |
C |
83 |
S |
99 |
c |
115 |
s |
4 |
EOT |
20 |
DC4 |
36 |
$ |
52 |
4 |
68 |
D |
84 |
T |
100 |
d |
116 |
t |
5 |
ENQ |
21 |
NAK |
37 |
% |
53 |
5 |
69 |
E |
85 |
U |
101 |
e |
117 |
u |
6 |
ACK |
22 |
SYN |
38 |
& |
54 |
6 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
7 |
BEL |
23 |
ETB |
39 |
' |
55 |
7 |
71 |
G |
87 |
W |
103 |
g |
119 |
w |
8 |
BS |
24 |
KAN |
40 |
( |
56 |
8 |
72 |
H |
88 |
X |
104 |
h |
120 |
x |
9 |
HT |
25 |
EM |
41 |
) |
57 |
9 |
73 |
Jeg |
89 |
Y |
105 |
Jeg |
121 |
y |
10 |
LF |
26 |
UNDER |
42 |
* |
58 |
: |
74 |
J |
90 |
Z |
106 |
j |
122 |
z |
11 |
VT |
27 |
ESC |
43 |
+ |
59 |
; |
75 |
K |
91 |
[ |
107 |
k |
123 |
{ |
12 |
FF |
28 |
FS |
44 |
, |
60 |
< |
76 |
L |
92 |
\ |
108 |
l |
124 |
| |
13 |
CR |
29 |
GS |
45 |
- |
61 |
= |
77 |
M |
93 |
] |
109 |
m |
125 |
} |
14 |
SÅ |
30 |
RS |
46 |
. |
62 |
> |
78 |
N |
94 |
^ |
110 |
n |
126 |
~ |
15 |
SI |
31 |
OSS |
47 |
/ |
63 |
? |
79 |
O |
95 |
_ |
111 |
o |
127 |
DEL |
Hvordan lage ditt eget ASCII-bord med Bash
Det er så mange verdier i ASCII-tabellen at det kan være vanskelig å huske eller ta notater. Som referanse kan du se alle ASCII-verdier med litt koding i ditt valgte programmeringsspråk, inkludert et skallskript.
I ASCII-tabellen ovenfor tilsvarer verdien 65 bokstaven A og verdien 90 tilsvarer bokstaven Z. I stedet for å regne ut alle verdiene i mellom manuelt, kan du iterere over disse verdiene og skrive ut de tilsvarende tegnene. Som de fleste andre språk lar Bash shell-skript deg bruke en til loop for å gjenta en eller flere instruksjoner et visst antall ganger.
Prøv å bruke denne informasjonen skrive et Bash-program som skriver ut alle verdier fra 33 til 126:
#!/bin/bash
ekko"ASCII-tabell"
ekko""til ((i=33; i<=126; i++))
gjøre
char=$(printf"\\x$(printf '%02x' $i)")
printf"%-10d%-10s"$i"$char"
hvis (((i+1) % 4 == 0))
deretter
printf"\n"
fi
ferdig
Dette Bash-skriptet tildeler alle verdier mellom 33 og 126 til en røye variabel og skriver den ut på skjermen. Lagre dette Bash-skriptet i en fil som heter myASCII.sh og kjør den med følgende kommando og undersøk resultatet.
bash myASCII.sh
Du bør se en nyttig tabell som viser ASCII-tegn ved siden av deres desimalverdier:
Hvordan filtrere ASCII-tabellen
Du kan gjøre mer med et Bash-skript enn å bare se ASCII-verdier. Du kan inspisere ASCII-verdien til individuelle tegn og, i følgende eksempel, bruke disse til å filtrere tekst.
La oss for eksempel prøve å slette bokstaven E i søkeordet MAKEUSEOF ved å bruke Bash med ASCII-filtrering. Du kan bruke oppslagstabellen til å bekrefte ASCII-verdien til "E": 69.
#!/bin/bash
original_text="BENYTTE SEG AV"
filtrert_tekst=""
original_text_ascii=""
filtered_text_ascii=""til ((i=0; i<${#original_text}; i++))
gjøre
char="${original_text: i: 1}"
char_ascii=$(printf"%d""'$char'")hvis [[ "$(printf "%d" "'$char")" != "69" ]]
deretter
filtrert_tekst+="$char"
filtered_text_ascii+=" $char_ascii"
fioriginal_text_ascii+=" $char_ascii"
ferdig
ekko"Originaltekst: $original_text (ASCII: $original_text_ascii)"
ekko"ASCII-ekvivalent av bokstaven E: $(printf "%d" "'E'")"
ekko"Filtrert tekst: $filtered_text (ASCII: $filtered_text_ascii)"
I dette skriptet er inngangsvariabelen ordet MAKEUSEOF. Skriptet bruker en variabel, filtrert_tekst,for å bygge ønsket utgang som inneholder alt bortsett fra bokstaven "E". De til Løkke itererer gjennom hvert tegn i inndatateksten.
For å se resultatet, kopier denne koden til en fil med navnet myFilter.sh og løp bash myFilter.sh.
Konvertere store bokstaver til små bokstaver i Bash ved å bruke ASCII-tabellen
Du kan også konvertere store bokstaver til små bokstaver med Bash ved å bruke ASCII-tabellen. Når du undersøker 7-bits ASCII-tabellen, vil du se at forskjellen mellom de store og små bokstavene til de samme bokstavene alltid er 32. Ved å bruke dette er logikken til et program som kan konvertere et ord med store bokstaver til små bokstaver grei.
For eksempel har stor A en verdi på 65, mens liten a har en verdi på 97. Ved å dra nytte av dette kan du skrive en kodebit som dette:
#!/bin/bash
lese -s "Skriv inn en tekst: " input
converted_text=""
til ((i=0; i<${#input}; i++))
gjøre
char="${input: i: 1}"
char_ascii=$(printf"%d""'$char'")hvis [[ $char_ascii -eq 32 ]]
deretter
ekko"Ugyldig tegn: mellomrom"
elif [[ $char_ascii -ge 65 && $char_ascii -le 90 ]]
deretter
char_ascii=$((char_ascii + 32))
converted_text+=$(printf"\\$(printf '%03o' "$char_ascii")")
elif [[ $char_ascii -ge 97 && $char_ascii -le 127 ]]
deretter
converted_text+="$char"
ellers
ekko"Ugyldig tegn: $char"
fi
ferdig
ekko"Konvertert tekst: $konvertert_tekst"
Dette programmet legger til 32 til ASCII-verdien for hver stor bokstav det leser for å komme frem til den tilsvarende små bokstaven. For å prøve det selv, kopier denne koden til en fil som heter tilSmå bokstaver.sh og kjøre den med bash tilSmå bokstaver.sh kommando.
Vil ASCII-tabellen fungere for meg?
ASCII-tabellen er et verdifullt verktøy for alle som jobber med tekstdata eller programmeringsspråk. Den tilbyr en standardrepresentasjon av tegn, tall og symboler som datamaskiner forstår universelt. Enten du er programmerer, dataanalytiker eller bare noen som arbeider med tekstinformasjon, har ASCII-tabellen mange bruksområder.
Dette åpner for muligheter for oppgaver som datavalidering, tekstmanipulering og kodings-/dekodingsoperasjoner. Ved å referere til ASCII-tabellen kan du raskt bestemme ASCII-verdien til et tegn eller konvertere numeriske verdier tilbake til deres tekstrepresentasjoner. Den fungerer som et grunnlag for kommunikasjon og interoperabilitet i ulike domener, noe som gjør det til en viktig referanse for tekstrelatert programmering.