Ostatnio potrzebowałem skorzystać z kodów ASCII w konsoli systemu Windows. Oczywiście można znaleźć gotowe tablice z kodami ASCII w internecie, ale rozszerzone kody ASCII są zależne od systemu operacyjnego oraz strony kodowej. Tak więc stworzyłem prosty programik ascii-codes, który wyświetla symbole (znaki) dla kodów ASCII od 0 do 255.
ASCII (ang. American Standard Code for Information Interchange) – 7-bitowy kod przyporządkowujący liczby z zakresu 0−127: literom alfabetu angielskiego, cyfrom, znakom przestankowym i innym symbolom oraz poleceniom sterującym. Na przykład litera „a” jest kodowana jako liczba 97, a znak spacji jest kodowany jako 32. Znaki ASCII dzielimy na:
- sterujące (kody 0 - 31 oraz 127),
- drukowalne (kody 32 - 126).
Ponieważ kod ASCII jest 7-bitowy, a większość komputerów operuje na 8-bitowych bajtach, dodatkowy bit można wykorzystać na powiększenie zbioru kodowanych znaków do 256 symboli, a więc mamy:
- znaki ASCII rozszerzone (kody 128 - 255) - uzależnione od strony kodowej.
Stronę kodową konsoli Windows sprawdzamy poleceniem:
mode con cp
a ustawiamy poleceniem:
mode con cp=[strona kodowa]
np.
mode con cp=1250
Kod programu ascii-codes.c:
https://github.com/adamblaszczyk/ascii-codes /* * ----------------------------------------- * ASCII Codes 1.0 * ----------------------------------------- * Author: Adam Blaszczyk * http://wyciekpamieci.blogspot.com * Date: 2016-03-08 * ----------------------------------------- * * Compilation (Linux, Windows): * gcc ascii-codes.c -o ascii-codes -Wall * * Usage: * ascii-codes * - ASCII and Extended ASCII *printable* characters between 32 and 255 * ascii-codes min * - ASCII and Extended ASCII characters between [min] and 255 * ascii-codes min max * - ASCII and Extended ASCII characters between [min] and [max] * */ #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int ch; int min = 32; int max = 255; if(argc == 2) min = atoi(argv[1]); if(argc == 3) { min = atoi(argv[1]); max = atoi(argv[2]); } printf("\n"); printf(" ASCII CODES\n"); printf(" ==============================================\n"); printf(" 0 - 31; 127 --> ASCII control characters\n"); printf(" 32 - 126 --> ASCII printable characters\n"); printf(" 128 - 255 --> Extended ASCII characters\n"); printf("\n"); printf(" +-------+------+-----------+\n"); printf(" | DEC | HEX | Character |\n"); printf(" +-------+------+-----------+\n"); for(ch = min; ch <= max; ch++) { printf(" | %03d | %02X | %c |\n", ch, ch, ch); } printf("\nPress [ENTER] to exit..."); getchar(); return 0; }
Program da się skompilować pod Windows i Linux za pomocą gcc:
gcc ascii-codes.c -o ascii-codes -Wall
Przykładowe użycie programu:
ascii-codes
Wyświetla drukowalne znaki ASCII o kodach od 32 do 255,
ascii-codes 1
Wyświetla znaki ASCII o kodach od 1 do 255,
ascii-codes 174 181
Wyświetla znaki ASCII o kodach od 174 do 181.
Brak komentarzy:
Prześlij komentarz