Εάν ποτέ χρειαστεί να εργαστείτε με τιμές ASCII, είναι απαραίτητος ένας πίνακας αναζήτησης.

Ο πίνακας ASCII χρησιμοποιεί αριθμούς για να αναπαραστήσει ψηφία, γράμματα και κοινά σύμβολα από το αγγλικό αλφάβητο. Το ASCII σημαίνει τον Αμερικανικό Τυπικό Κώδικα για την Ανταλλαγή Πληροφοριών.

Η λέξη χρησιμοποιήθηκε για πρώτη φορά από το ANSI (American National Standards Institute) το 1973 για να καλύψει την ανάγκη σε αυτό το πεδίο. Πώς μοιάζει λοιπόν ο πίνακας ASCII και πώς μπορείτε να τον χρησιμοποιήσετε;

Τι είναι ένας πίνακας ASCII και τι περιέχει;

Το ASCII είναι ένα σύστημα κωδικοποίησης χαρακτήρων που διευκολύνει τη βασική επικοινωνία με υπολογιστή. Παρέχει ένα πρότυπο για την αναπαράσταση κειμένου, επιτρέποντας στους υπολογιστές να αναγνωρίζουν και να ερμηνεύουν τις τιμές ASCII καθολικά.

Κάθε γράμμα, αριθμός και σύμβολο που μπορεί να αντιπροσωπεύει το ASCII έχει μια μοναδική τιμή. Για παράδειγμα, εάν εξετάσετε τον παρακάτω πίνακα ASCII, θα δείτε ότι οι τιμές ASCII με κεφαλαία γράμματα ξεκινούν από το 65, το κεφαλαίο γράμμα A. Ομοίως, οι πεζές τιμές ASCII ξεκινούν από το 97, το πεζό γράμμα a.

Αυτές οι τιμές χρησιμεύουν ως αριθμητικές αναπαραστάσεις χαρακτήρων, επιτρέποντας την εύκολη μετατροπή μεταξύ αριθμών και κειμένου.

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

Χαρακτήρας

ASCII

0

NUL

16

ΔΕΛ

32

SP

48

0

64

@

80

Π

96

`

112

Π

1

SOH

17

DC1

33

!

49

1

65

ΕΝΑ

81

Q

97

ένα

113

q

2

STX

18

DC2

34

"

50

2

66

σι

82

R

98

σι

114

r

3

ETX

19

DC3

35

#

51

3

67

ντο

83

μικρό

99

ντο

115

μικρό

4

ΕΟΤ

20

DC4

36

$

52

4

68

ρε

84

Τ

100

ρε

116

t

5

ENQ

21

NAK

37

%

53

5

69

μι

85

U

101

μι

117

u

6

ACK

22

ΣΥΝ

38

&

54

6

70

φά

86

V

102

φά

118

v

7

BEL

23

ETB

39

'

55

7

71

σολ

87

W

103

σολ

119

w

8

BS

24

ΜΠΟΡΩ

40

(

56

8

72

H

88

Χ

104

η

120

Χ

9

HT

25

EM

41

)

57

9

73

Εγώ

89

Υ

105

Εγώ

121

y

10

LF

26

ΥΠΟ

42

*

58

:

74

J

90

Ζ

106

ι

122

z

11

VT

27

ESC

43

+

59

;

75

κ

91

[

107

κ

123

{

12

FF

28

FS

44

,

60

<

76

μεγάλο

92

\

108

μεγάλο

124

|

13

CR

29

Γ.Σ

45

-

61

=

77

Μ

93

]

109

Μ

125

}

14

ΕΤΣΙ

30

RS

46

.

62

>

78

Ν

94

^

110

n

126

~

15

ΣΙ

31

ΜΑΣ

47

/

63

?

79

Ο

95

_

111

ο

127

ΔΕΛ

Πώς να δημιουργήσετε τον δικό σας πίνακα ASCII με το Bash

Υπάρχουν τόσες πολλές τιμές στον πίνακα ASCII που μπορεί να είναι δύσκολο να απομνημονεύσετε ή να κρατήσετε σημειώσεις. Για αναφορά, μπορείτε να δείτε όλες τις τιμές ASCII με λίγη κωδικοποίηση στη γλώσσα προγραμματισμού της επιλογής σας, συμπεριλαμβανομένου ενός σεναρίου φλοιού.

Στον παραπάνω πίνακα ASCII, η τιμή 65 αντιστοιχεί στο γράμμα Α και η τιμή 90 αντιστοιχεί στο γράμμα Ζ. Αντί να επεξεργαστείτε όλες τις ενδιάμεσες τιμές με μη αυτόματο τρόπο, μπορείτε να επαναλάβετε αυτές τις τιμές και να εκτυπώσετε τους αντίστοιχους χαρακτήρες τους. Όπως και οι περισσότερες άλλες γλώσσες, τα σενάρια κελύφους Bash σάς επιτρέπουν να χρησιμοποιείτε α Για βρόχο για να επαναλάβετε μία ή περισσότερες οδηγίες ορισμένες φορές.

Χρησιμοποιώντας αυτές τις πληροφορίες, προσπαθήστε να γράψτε ένα πρόγραμμα Bash που εκτυπώνει όλες τις τιμές από 33 έως 126:

#!/bin/bash

ηχώ"Πίνακας ASCII"
ηχώ""

Για ((i=33; i<=126; i++))
κάνω
χαρ=$(printf"\\Χ$(printf '%02x' $i)")
printf"%-10d%-10s"$i"$χαρ"

αν (((i+1) % 4 == 0))
έπειτα
printf"\n"
fi
Έγινε

Αυτή η δέσμη ενεργειών Bash εκχωρεί όλες τις τιμές μεταξύ 33 και 126 στο a απανθρακώνω μεταβλητή και την εκτυπώνει στην οθόνη. Αποθηκεύστε αυτό το σενάριο Bash σε ένα αρχείο με το όνομα myASCII.sh και εκτελέστε το με την παρακάτω εντολή και εξετάστε το αποτέλεσμα.

bash myASCII.sh

Θα πρέπει να δείτε έναν χρήσιμο πίνακα που δείχνει χαρακτήρες ASCII μαζί με τις δεκαδικές τους τιμές:

Πώς να φιλτράρετε τον πίνακα ASCII

Μπορείτε να κάνετε περισσότερα με ένα σενάριο Bash από το να προβάλετε απλώς τιμές ASCII. Μπορείτε να επιθεωρήσετε την τιμή ASCII μεμονωμένων χαρακτήρων και, στο ακόλουθο παράδειγμα, να τις χρησιμοποιήσετε για να φιλτράρετε κείμενο.

Για παράδειγμα, ας προσπαθήσουμε να διαγράψουμε το γράμμα Ε στη λέξη-κλειδί MAKEUSEOF χρησιμοποιώντας το Bash με φιλτράρισμα ASCII. Μπορείτε να χρησιμοποιήσετε τον πίνακα αναζήτησης για να επιβεβαιώσετε την τιμή ASCII του "E": 69.

#!/bin/bash
original_text="ΚΑΝΟΥΝ ΧΡΗΣΗ ΤΟΥ"
filtered_text=""
original_text_ascii=""
filtered_text_ascii=""

Για ((i=0; i<${#original_text}; i++))
κάνω
χαρ="${original_text: i: 1}"
char_ascii=$(printf"%ρε""'$χαρ'")

αν [[ "$(printf "%d" "'$char")" != "69" ]]
έπειτα
filtered_text+="$χαρ"
filtered_text_ascii+=" $char_ascii"
fi

original_text_ascii+=" $char_ascii"
Έγινε

ηχώ"Αρχικό κείμενο: $original_text (ASCII: $original_text_ascii)"
ηχώ"Αντίστοιχο ASCII του γράμματος Ε: $(printf "%d" "'E'")"
ηχώ"Φιλτραρισμένο κείμενο: $filtered_text (ASCII: $filtered_text_ascii)"

Σε αυτό το σενάριο, η μεταβλητή εισόδου είναι η λέξη MAKEUSEOF. Το σενάριο χρησιμοποιεί μια μεταβλητή, φιλτραρισμένο_κείμενο, για να δημιουργήσετε την επιθυμητή έξοδο που περιέχει τα πάντα εκτός από το γράμμα "E". ο Για βρόχος επαναλαμβάνεται μέσω κάθε χαρακτήρα του κειμένου εισαγωγής.

Για να δείτε το αποτέλεσμα, αντιγράψτε αυτόν τον κώδικα σε ένα αρχείο με το όνομα myFilter.sh και τρέξε bash myFilter.sh.

Μετατροπή κεφαλαίων σε πεζά στο Bash χρησιμοποιώντας τον πίνακα ASCII

Μπορείτε επίσης να μετατρέψετε κεφαλαία σε πεζά γράμματα με το Bash χρησιμοποιώντας τον πίνακα ASCII. Όταν εξετάζετε τον πίνακα ASCII 7-bit, θα δείτε ότι η διαφορά μεταξύ των κεφαλαίων και πεζών τιμών των ίδιων γραμμάτων είναι πάντα 32. Χρησιμοποιώντας αυτό, η λογική ενός προγράμματος που μπορεί να μετατρέψει μια κεφαλαία λέξη σε πεζό είναι απλή.

Για παράδειγμα, το κεφαλαίο Α έχει τιμή 65, ενώ το μικρό α έχει τιμή 97. Εκμεταλλευόμενοι αυτό, μπορείτε να γράψετε ένα απόσπασμα κώδικα όπως αυτό:

#!/bin/bash

ανάγνωση"Εισαγάγετε ένα κείμενο:" εισαγωγή

converted_text=""

Για ((i=0; i<${#input}; i++))
κάνω
χαρ="${input: i: 1}"
char_ascii=$(printf"%ρε""'$χαρ'")

αν [[ $char_ascii -εξ. 32 ]]
έπειτα
ηχώ"Μη έγκυρος χαρακτήρας: space"
ελιφ [[ $char_ascii -ge 65 && $char_ascii -le 90 ]]
έπειτα
char_ascii=$((char_ascii + 32))
converted_text+=$(printf"\\$(printf '%03o' "$char_ascii")")
ελιφ [[ $char_ascii -ge 97 && $char_ascii -le 127 ]]
έπειτα
converted_text+="$χαρ"
αλλού
ηχώ"Μη έγκυρος χαρακτήρας: $χαρ"
fi
Έγινε

ηχώ"Κείμενο που μετατράπηκε: $converted_text"

Αυτό το πρόγραμμα προσθέτει 32 στην τιμή ASCII κάθε κεφαλαίου γράμματος που διαβάζει για να καταλήξει στο αντίστοιχο πεζό γράμμα. Για να το δοκιμάσετε μόνοι σας, αντιγράψτε αυτόν τον κώδικα σε ένα αρχείο που ονομάζεται σε πεζά.sh και τρέξτε το με το bash σε Μικρά.sh εντολή.

Θα λειτουργήσει ο πίνακας ASCII για μένα;

Ο πίνακας ASCII είναι ένα πολύτιμο εργαλείο για όποιον εργάζεται με δεδομένα κειμένου ή γλώσσες προγραμματισμού. Προσφέρει μια τυπική αναπαράσταση χαρακτήρων, αριθμών και συμβόλων που οι υπολογιστές κατανοούν παγκοσμίως. Είτε είστε προγραμματιστής, είτε αναλυτής δεδομένων ή απλά κάποιος που ασχολείται με πληροφορίες κειμένου, ο πίνακας ASCII έχει πολλές χρήσεις.

Αυτό ανοίγει δυνατότητες για εργασίες όπως επικύρωση δεδομένων, χειρισμός κειμένου και λειτουργίες κωδικοποίησης/αποκωδικοποίησης. Ανατρέχοντας στον πίνακα ASCII, μπορείτε να προσδιορίσετε γρήγορα την τιμή ASCII ενός χαρακτήρα ή να μετατρέψετε τις αριθμητικές τιμές πίσω στις αναπαραστάσεις κειμένου τους. Χρησιμεύει ως βάση για επικοινωνία και διαλειτουργικότητα σε διάφορους τομείς, καθιστώντας την απαραίτητη αναφορά για προγραμματισμό που σχετίζεται με κείμενο.