← ყველა ხელსაწყო

ASCII ცხრილი

სრული ASCII ცხრილის საცნობარო ათობითი, თექვსმეტობითი და ორობითი კოდებით, საკონტროლო და დასაბეჭდი სიმბოლოებით, და ASCII-ის კავშირი Unicode-სა და UTF-8-თან.
DecHexOctCharსახელი

ASCII ცხრილი: როგორ გახდა 128 რიცხვი ტექსტის საფუძველი

ASCII, ინგლისურად American Standard Code for Information Interchange-ის აბრევიატურა, არის კოდირება, რომელმაც კომპიუტერებს ასწავლა შეთანხმებულიყვნენ იმაზე, თუ რა არის ასო. გამოქვეყნდა 1963 წელს და დაიხვეწა 1960-იან წლებში, ის ინგლისური ტექსტის ყოველ ძირითად სიმბოლოს, ციფრებსა და რამდენიმე მართვის სიგნალს რიცხვებზე ასახავს, რომელთა შენახვა და გადაცემა მანქანას შეუძლია. როცა ღილაკს ჭერთ დიდი A-სთვის, თქვენი კომპიუტერი ფორმას კი არა, არამედ რიცხვს 65 ინახავს. ASCII არის ცხრილი, რომელიც ამ რიცხვს ყველგან, სადაც კი გადაადგილდება, A-ს მნიშვნელობას ანიჭებს.

სტანდარტი ცნობილად კომპაქტურია. ASCII 7-ბიტიანი კოდია, რაც ნიშნავს, რომ ყოველი სიმბოლო შვიდ ორობით ციფრში ეტევა, ხოლო მთელი ნაკრები ზუსტად 2-ის მე-7 ხარისხს, ანუ 128 განსხვავებულ კოდურ წერტილს მოიცავს, დანომრილს 0-დან 127-მდე. ეს ეკონომია განზრახული იყო. ადრეული ტელეტაიპები და მოდემები ნელი და ძვირი იყო, ამიტომ ყოველი ბიტი ითვლებოდა. შვიდი ბიტი საკმარისი იყო დიდი და პატარა ლათინური ასოების, ათი ციფრის, გავრცელებული პუნქტუაციისა და სასიგნალო სიმბოლოების დასაფარად, რომლებიც მოწყობილობებს სინქრონიზებულს ინარჩუნებდა, ხოლო ერთი ბიტი მრავალ სისტემაში შეცდომების შემოწმებისთვის რჩებოდა.

აბსტრაქტული ციალა ბადე, სიმბოლოების დალაგებული უჯრედებით მუქ ინდიგოსფერ ფონზე ცისფერი და ოქროსფერი შუქით
ASCII ყოველ სიმბოლოს ალაგებს ფიქსირებულ, დანომრილ 128-უჯრედიან ბადეში.

ორი ნახევარი: მართვის სიმბოლოები და დასაბეჭდი სიმბოლოები

ცხრილი მკვეთრად ორ ზონად იყოფა. კოდები 0-დან 31-მდე, პლუს კოდი 127 (DEL), მართვის სიმბოლოებია. ისინი ეკრანზე გლიფს არ ბეჭდავენ. სამაგიეროდ, ისინი მოწყობილობას აძლევენ ბრძანებას, გააკეთოს რაღაც: კოდი 9 ჰორიზონტალური ტაბულაციაა, კოდი 10 — ხაზის მიწოდება, რომელიც ახალ ხაზზე გადაჰყავს, კოდი 13 — რიგის დასაწყისში დაბრუნება, ხოლო კოდი 7 — ზარი, რომელიც ოდესღაც ტერმინალს ისმენად აჟღერებდა. საერთო ჯამში, სულ 33 ასეთი სასიგნალო კოდი არსებობს, და თუმცა ბევრი მათგანი დღეს ისტორიული ცნობისმოყვარეობის საგანია, ხაზის მიწოდება, დაბრუნება და ტაბულაცია დღემდე ტექსტური ფაილების ფორმატირებისთვის აუცილებელია.

კოდები 32-დან 126-მდე დასაბეჭდი სიმბოლოებია, სულ ოთხმოცდათხუთმეტი. კოდი 32 გამოტოვების ნიშანია, რომელიც დასაბეჭდად ითვლება, რადგან კურსორს წინ ამოძრავებს, თუმცა არაფერს აჩვენებს. აქედან მოდის პუნქტუაცია და სიმბოლოები, ციფრები 0-დან 9-მდე კოდებზე 48-დან 57-მდე, დიდი ასოები A-დან Z-მდე კოდებზე 65-დან 90-მდე, და პატარა ასოები a-დან z-მდე კოდებზე 97-დან 122-მდე. ამ განლაგებიდან წარმოიშობა ერთი მოწესრიგებული თვისება: ერთი და იმავე ასოს პატარა და დიდი ვარიანტები ზუსტად 32-ით განსხვავდება, რის გამოც ერთი ბიტის შებრუნება რეგისტრის შეცვლას იძლევა. ეს კანონზომიერებები შემთხვევითი არ არის — ისინი განზრახ იყო შექმნილი, რათა დალაგება და რეგისტრის შეცვლა მარტივი არითმეტიკით შესრულებულიყო.

ათობითი, თექვსმეტობითი და ორობითი: ერთი რიცხვის სამი ხედი

ყოველი ASCII კოდი უბრალოდ რიცხვია, და თქვენ მას სამი ფორმით ნახავთ. ათობითი არის ყოველდღიური, 10-ფუძიანი ფორმა, ასე რომ A არის 65. თექვსმეტობითი, 16-ფუძიანი, ის ფორმაა, რომელსაც პროგრამისტები აირჩევენ ხოლმე, რადგან ბაიტებთან ერწყმის: A არის 0x41, ხოლო დასაბეჭდი დიაპაზონი 0x20-დან 0x7E-მდე გადის. ორობითი, 2-ფუძიანი, ის ფორმაა, სადაც აპარატურა ნამდვილად ინახავს მონაცემს, ასე რომ A არის 1000001 თავისი შვიდი ბიტის მასშტაბით. იგივე სიმბოლო, სამი ჩანაწერი, და მათ შორის თავისუფლად გადაადგილება ძირითადი უნარია, როცა მეხსიერების ნახვას ან ქსელურ ტრაფიკს კითხულობთ. თუ ხშირად მუშაობთ ამ გარდაქმნებთან, speedor.net-ის უფრო ფართო საცნობარო ცხრილები შესატყვისობებს ერთ დაწკაპუნებაში გაძლევთ.

ორობითი და თექვსმეტობითი შუქის ნაკადები, ჩამავალი ციალა გლიფის ჭრილებში მუქლურჯ ფონზე
ორობითი და თექვსმეტობითი უბრალოდ სხვადასხვა ფუძეა, რომელიც იმავე ASCII კოდურ წერტილს აღწერს.

სად აქვს ASCII-ს დღემდე მნიშვნელობა

შეცდომა იქნებოდა ASCII ისტორიის კატეგორიაში მოქცევა. ის ცოცხალია ყოველი ადამიანის ყოველდღიურ საქმეში, ვინც კოდს ეხება. პროგრამირების ენები სტრიქონულ ლიტერალებს, საწყის ფაილებსა და პროტოკოლის საკვანძო სიტყვებს ბაიტების დონეზე ASCII-დ განიხილავენ. ქსელური პროტოკოლები, როგორიცაა HTTP სათაურები, SMTP და ბევრი კონფიგურაციის ფორმატი, ASCII-ში განისაზღვრება, რათა ადამიანისთვის წაკითხვადი დარჩეს. როცა სტრიქონი დაზიანებული ჩანს, დეველოპერები თექვსმეტობითი დამათვალიერებლისკენ მიდიან და ნედლ ბაიტებს ASCII ცხრილთან ადარებენ, რათა შემთხვევითი მართვის სიმბოლო ან არასწორი ხაზის დასასრული აღმოაჩინონ. URL კოდირება, Base64 და გაქცევის თანმიმდევრობები ყველა ASCII მნიშვნელობებზეა აგებული. ვინც კოდირების შეცდომებს იჭერს, სწრაფი საცნობარო დეველოპერული ხელსაწყოების გვერდით იდუმალ ბაიტს ცხად პასუხად აქცევს.

ASCII-დან Unicode-სა და UTF-8-მდე

ASCII ინგლისურს ბრწყინვალედ ფარავდა და თითქმის არაფერ სხვას. 128 სიმბოლოს ჭერი ვერ დაიტევს ხმოვნებზე ნიშნიან ასოებს, კირილიცას, ჩინურს, არაბულს ან ემოჯებს. Unicode-მ ამას გამოხმაურება უპასუხა ყოველი დამწერლობის ყოველი სიმბოლოსთვის უნიკალური რიცხვის, ე.წ. კოდური წერტილის, მინიჭებით — ახლა ასზე მეტი ათასისა. მნიშვნელოვანია, რომ Unicode სიმბოლოთა კატალოგია და არა შენახვის ფორმატი, ამიტომ მას სჭირდება კოდირება ამ კოდური წერტილების ბაიტებად გადასაქცევად.

UTF-8 სწორედ ეს კოდირებაა, და ის მიზეზია, თუ რატომ არ გაქრა ASCII სინამდვილეში. UTF-8 ერთიდან ოთხამდე ბაიტს იყენებს სიმბოლოზე, და ის ისე შეიქმნა, რომ კოდური წერტილები 0-დან 127-მდე, მთელი ASCII დიაპაზონი, ერთ ბაიტში ინახება, იდენტურად ჩვეულებრივი ASCII-სთან. ეს UTF-8-ს სრულყოფილად უკუთავსებადს ხდის: ნებისმიერი მართებული ASCII ფაილი უკვე მართებული UTF-8 ფაილია. 127-ზე მაღალი სიმბოლოები დამატებით ბაიტებს იყენებენ. სწორედ ეს ელეგანტური თავსებადობა არის მთავარი მიზეზი, თუ რატომ ამუშავებს UTF-8 ახლა ვების უზარმაზარ უმრავლესობას. მოკლედ, ASCII არის თავდაპირველი 128-სიმბოლოიანი ბირთვი, Unicode არის უნივერსალური კატალოგი, რომელიც მას შეიცავს, ხოლო UTF-8 არის კოდირება, რომელიც ორივეს ატარებს ASCII ტექსტს ბაიტ-ბაიტად უცვლელად ტოვებით.

ხშირად დასმული კითხვები

რამდენი სიმბოლოა ASCII ცხრილში?

სტანდარტული ASCII 128 სიმბოლოს განსაზღვრავს, დანომრილს 0-დან 127-მდე. ამათგან 95 დასაბეჭდი სიმბოლოა, გამოტოვების ჩათვლით, ხოლო 33 — მართვის სიმბოლო, რომელიც მოწყობილობას სიგნალს აძლევს გლიფის დაბეჭდვის ნაცვლად.

რა განსხვავებაა მართვისა და დასაბეჭდი სიმბოლოებს შორის?

მართვის სიმბოლოები, კოდები 0-დან 31-მდე პლუს 127, მოწყობილობას ავალდებულებენ, გააკეთოს რაღაც, როგორიცაა ხაზის მიწოდება ან ტაბულაცია, და ხილულ გლიფს არ იძლევა. დასაბეჭდი სიმბოლოები, კოდები 32-დან 126-მდე, ის ასოები, ციფრები, პუნქტუაცია და გამოტოვების ნიშანია, რომელსაც სინამდვილეში ეკრანზე ხედავთ.

რატომაა ASCII 7-ბიტიანი კოდი?

შვიდი ბიტი ზუსტად 128 კომბინაციას იძლევა, რაც საკმარისი იყო ინგლისური ასოების, ციფრების, პუნქტუაციისა და მართვის სიგნალების დასაფარად, ამასთან ადრეული ნელი აპარატურის ზოლის სიგანეს ზოგავდა. ბაიტის მერვე ბიტი ხშირად პარიტეტის შეცდომების შემოწმებისთვის იყო დაცული.

რომელია ASCII კოდი ასო A-სთვის?

დიდი A ათობითში არის 65, თექვსმეტობითში — 0x41, ხოლო ორობითში — 1000001. პატარა a ათობითში არის 97, რაც ზუსტად 32-ით მეტია — ჩაშენებული ნიმუში, რომელიც რეგისტრის შეცვლას მარტივი არითმეტიკით უზრუნველყოფს.

იგივეა ASCII, რაც Unicode?

არა. ASCII 128 სიმბოლოს ფარავს, ხოლო Unicode ასზე მეტ ათას სიმბოლოს კატალოგირებს ყოველ დამწერლობაში. ASCII ფაქტობრივად Unicode-ის პირველი 128 კოდური წერტილია, ასე რომ ის უფრო დიდი სტანდარტის მცირე ქვეჯგუფია.

როგორ უკავშირდება UTF-8 ASCII-ს?

UTF-8 არის Unicode-ის კოდირება, რომელიც კოდურ წერტილებს 0-დან 127-მდე ერთ ბაიტში ინახავს, იდენტურად ASCII-სთან. ეს ყოველ ASCII ფაილს მართებულ UTF-8 ფაილად აქცევს, რის გამოც UTF-8 უკუთავსებადია და თანამედროვე ვების ბატონობს.