ASCII Values & Table Generator in C


Do you ever wonder how your computer understands and displays the text you type? It all comes down to ASCII – the American Standard Code for Information Interchange. This system, integral to our electronic communications, translates our keystrokes into a numeric code that the computer can interpret. In this blog post, we’ll dive into the fascinating world of ASCII values and even demonstrate how you can generate an ASCII table in C. Whether you’re a seasoned programmer or a curious newbie, this is a fundamental concept that’s worth exploring. So, let’s embark on this coding journey together!

ASCII, or the American Standard Code for Information Interchange, is essentially a character encoding standard employed by electronic devices, predominantly computers, to comprehend human-readable text. When you press a key on your keyboard, your computer doesn’t actually see ‘a’, ‘b’, or ‘1’, instead, it sees unique numbers attributed to these characters in ASCII. For instance, the ASCII value for ‘a’ is 97, ‘b’ is 98, and ‘1’ is 49. These values are systematic and universal across all computers, allowing them to speak the same ‘language’. These values range from 0 to 127 in the standard ASCII table, encompassing various characters including alphabets (both upper and lower case), digits, punctuation marks, and special control characters. Understanding ASCII is key to understanding the very basics of how computers interpret and represent text data.

What is ASCII?

Diving Deeper into ASCII

ASCII is more than just a code—it’s a system that enables us to communicate with our devices in a language they can understand. Each character in the ASCII standard is represented by a 7-bit binary number, ranging from 0 to 127. This includes not only the alphabets and numbers but also non-printable characters which are used for control commands. For instance, the ‘null’ character is denoted by 0000000 (or 0 in decimal), and it’s used in programming languages like C to mark the end of a string.

The first 32 characters (from 0 to 31) in the ASCII table are reserved for these control commands. Following these, the space character, denoted by 0100000 (or 32 in decimal) is the first printable ASCII character. The next 95 characters (from 33 to 127) include uppercase and lowercase letters, numbers, punctuation, and special symbols like the dollar sign ($) or the at symbol (@). The ASCII standard ensures that every device uses the same numerical value for the same character, enabling consistency and compatibility across different systems and platforms.

Understanding how ASCII works is fundamental for those working in computing or programming fields, as it helps in the manipulation of text data, whether it’s for writing code, managing databases, or even designing web pages. So next time when you hit a key on your keyboard, remember that there’s an entire system working behind the scenes, translating your human language into a language your computer can comprehend.

By an unknown officer or employee of the United States Government – MIL-STD-188-100, pg. B-2, Fig 1, 1972. (different scan), Public Domain,

The History and Evolution of ASCII

The American Standard Code for Information Interchange, or ASCII, has a rich history that dates back to the early 1960s. Designed by Robert W. Bemer during his time at IBM, ASCII quickly became the standard character encoding system for electronic communication. The original ASCII was a 7-bit system, representing a total of 128 unique characters. It was first published as a standard in 1963 by the American National Standards Institute (ANSI).

ASCII underwent a significant evolution in 1981 when IBM introduced an extended 8-bit version in their PC product line. This ‘Extended ASCII’, as it’s commonly known, doubled the character capacity to 256, offering a wider range of special symbols, diacritics, and other language-specific characters. This expansion allowed for better representation of non-English languages, catering to the growing global computer user base.

Despite the development of more complex character encoding systems today, such as Unicode, ASCII’s simplicity and widespread compatibility continue to make it prevalent, particularly within the realm of programming and data exchange. It’s a testament to the enduring influence of ASCII that even in our technologically advanced landscape, it remains the backbone of character encoding.

Understanding ASCII Values

How ASCII Translates Characters to Numbers

ASCII operates by assigning a unique numerical value to every character. To put simply, each character, whether it’s an uppercase or lowercase letter, a number, a punctuation mark, or a special symbol, is represented by a specific integer between 0 and 127 in the standard ASCII and up to 255 in the Extended ASCII.

For instance, the ASCII value for the uppercase letter “A” is 65, whereas the lower case “a” is assigned the number 97. Even a space is mapped to a number – it’s represented by the ASCII value of 32. Essentially, when you press a key on your keyboard, the computer translates that keypress into its corresponding ASCII value, which it then processes.

This numerical representation of characters in ASCII plays a crucial part in facilitating data exchange and communication between computers and other electronic devices. It’s an elegant solution that bridges the gap between human language and the binary language that computers understand.

By I, the copyright holder of this work, hereby publish it under the following license: – screenshot + gimp composition, Public Domain,

Common ASCII Values and Their Corresponding Characters

To provide a clearer picture, let’s look at some common ASCII values and their corresponding characters:

  • `65 A`: This is the ASCII value for the uppercase letter A.
  • `97 a`: Corresponds to the lowercase letter a.
  • `48 0`: This ASCII value represents the number 0.
  • `57 9`: This stands for the number 9.
  • `32`: This value is reserved for the space character.

This is just a snippet of the ASCII table. The complete table contains 128 values in the standard ASCII, extending up to 255 for the Extended ASCII, each corresponding to a unique character. This structure ensures that every character, from letters and numbers to punctuation marks and special symbols, has a distinct numerical representation, serving as a universal language that both humans and computers can understand.


What are ASCII values? Why Are They Needed?

We are all aware of the fact that all computers understand is 0 & 1 – and everything else is stored as patterns containing 0’s and 1’s. Some of us also know that numbers like 25, 12, etc can be represented as patterns of 0’s & 1’s. The computer interprets 25 as 11001 and 12 as 1100.  But how does it interpret a  sentence like “My name is K” or a word like “name” or a letter like “K”? Also, how does it know the difference between ‘k’ & ‘K’?

This is where ASCII values come in. Each character (including a space) has a certain corresponding number associated to it. And there are different numbers assigned to the lower and upper case of the same alphabet.  For instance, the letter ‘a’ corresponds to the number 97 while ‘A’ corresponds to the number 65.

An ASCII table maps the characters to the numbers. Apart from the equivalent decimal representation, it also gives the hexadecimal and octal representations of the character.

This is what the ASCII table looks like –

ascii value table

Here’s a little tool that can help you experiment with ASCII values.

What’s It Got To Do With Programming?

Now, the more important question. What has your programming got to do with ASCII values?
To begin with, have a look at the following C code –

{ char c;
printf("Enter any character\n");
scanf("%c", &c); /*scans a character */
printf("%d", c); /* prints a decimal */

It scans a character and returns an integer. Do you think the code is incorrect? Try compiling it. It does return a number for every character. And what is this number? Exactly, the decimal ASCII value of the character. Don’t believe me? That’s what the table is for.

Note that %d is responsible for giving us the corresponding decimal value from the ASCII table. We could similarly use %x to hexadecimal and %o for octal values corresponding to the character.

Now, we could try doing it the other way around. Input a number and get the corresponding character, that is.

{ int d;
printf("Enter any number\n");
scanf("%d", &d); /* scans a decimal */
printf("%c", d); /* prints a character */

That’s not it. We may even generate the complete column for a character from the ASCII table. All we need to do is print the dec, hex, and oct equivalents for the input character.

{ char c;
printf("Enter any character\n");
scanf("%c", &c); /*scans a character */
printf("%d\t", c); /* prints dec */
printf("%x\t", c); /* prints hex */
printf("%o", c); /* prints oct */

Now, we can easily use a loop to generate the complete ASCII table. The above table ends at the dec value 127. However, the extended ASCII table is defined to the decimal value 255(ie – it has 256 values). See this link for the extended ASCII table.

#include <stdio.h> #include <conio.h> /* program to generate the complete ASCII table */ main() { int x; for(x=1;x<=255;x++) { printf("\n%c\t", x); /* prints char */ printf("%d\t", x); /* prints dec */ printf("%x\t", x); /* prints hex */ printf("%o", x); /* prints oct */ } getch(); }

You can now try experimenting with ASCII values, decimal, hex, octal, and characters. Good Luck!
{Btw, Just to let you know – ASCII stands for American Standard Code for Information Interchange}

Sitechecker is a great website checker that provides a deep SEO analysis. Get a detailed SEO audit report with a personalized checklist on improving your website and get to the top of Google.

Frequently Asked Questions

Image by Mahesh Patel from Pixabay

Q1: What is ASCII?

ASCII stands for American Standard Code for Information Interchange. It’s a character encoding standard used to represent text in computers and other devices that use text.

Q2: How many values are there in an extended ASCII table?

The extended ASCII table is defined to the decimal value 255, meaning it has 256 values.

Q3: What’s the difference between ASCII and Unicode?

While ASCII only includes a limited set of 128 characters, Unicode is a much larger encoding system that includes characters from most of the world’s writing systems. Unicode is designed to be a superset of ASCII, meaning the first 128 characters of Unicode and ASCII are identical.

Q4: What is a decimal, hex, and octal?

These are different numerical systems: decimal (base 10), hexadecimal (base 16), and octal (base 8). In your C code, you can print the ASCII value in these formats.

Q5: What is the benefit of understanding ASCII in programming?

Understanding ASCII is fundamental to programming as it provides a standard way to represent text and special characters, which is crucial when dealing with data input and output, manipulating text, and ensuring cross-system compatibility.


To recap, ASCII, or the American Standard Code for Information Interchange, is an essential component of modern computing and data exchange. It functions as a translation system, assigning a unique numerical value to each character ranging from letters and numbers to punctuation marks and even spaces. The standard ASCII table contains 128 distinct values, with an extension to 255 for special characters in the Extended ASCII. This robust system ensures seamless communication between humans and computers, translating our input into a language that machines understand. The importance of ASCII in computing cannot be overstated as it serves as the foundational language that aids in data processing and transmission across various digital platforms.

Having dipped your toes into the world of ASCII in C programming, it’s time to dive deeper. There’s an ocean of knowledge waiting to be explored in this versatile and powerful language. C programming is an essential skill in the world of software development, offering a robust platform for understanding low-level operations and developing high-performance applications.

Don’t stop at ASCII; there’s so much more to discover. From data structures and algorithms, to file handling and command line arguments, each new topic will serve as a stepping stone, aiding in your mastery of programming concepts. Remember, the most profound learning comes from the time and effort you willingly invest. Keep experimenting, keep coding, and continue exploring the boundless possibilities of C programming.

Click here for more blogs!



  1. Pingback: URL

Leave A Reply