Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

With an encoding such as EBCDIC being in existence already (and being 8 bit to boot), what was the need to invent yet another encoding and a 7 bit one at that?

Why was ASCII invented and what problems with EBCDIC did supposed to solve?

share|improve this question
@YannisRizos - Can we merge? – Oded May 23 '12 at 18:17
I'll ask the mods to send it over ;) – Yannis May 23 '12 at 18:17
6 – Loki Astari May 23 '12 at 19:20
up vote 12 down vote accepted

Development of ASCII started earlier than what you think (see for instance Eric Fischer's The Evolution of Character Codes, 1874-1968) and IBM 360 - for which EBCDIC was developed -- should have used ASCII if its development had not been so slow (see

See also C. E. Mackenzie, Coded Character Sets, History and Development, ser. The systems programming series. Addison-Wesley, 1980. which describes the development of ASCII, EBCDIC and some other character sets with rationale for some of the assignations (things about chain printers and punched cards are fascinatingly obsolete but still have influence on what we use).

share|improve this answer
+1 for "earlier than ... you think". ASCII and EBCDIC were developed contemporaneously with different ancestors. – Ross Patterson Nov 9 '13 at 15:11

One reason is because EBCDIC wasn't a good standard, at least depending on your purpose. For example, the letters aren't in two (upper and lower case) contiguous blocks - there are extra codes between the EBCDIC letter codes, some of them used for other valid characters. The ~ is between r and s, for example. This makes sorting a bit more difficult.

Another is precisely because ASCII is a 7 bit code. Saving one bit per character was worthwhile at the time, and even six-bit character codes weren't uncommon. Even when 8 bits were used per character, the eighth was often a parity bit and not part of the character code.

share|improve this answer
A common media for inter-exchange (one of the I of ASCII) at the time was paper tape, which needed parity and did not easily allow more than 8 bits per frame. – AProgrammer May 23 '12 at 18:43
At that time, 7-track tape drives were also fairly common. – Jerry Coffin May 23 '12 at 18:53
@LokiAstari: I'm not really advocating anything -- but at least if I recall correctly, that was how they were used, at least part of the time (though the 7-track drives of which I was aware were mostly recording CDC's 6-bit code + parity in parallel). Later, there were also 9-track drives, that worked pretty much the same way. Then there were drives that acted like 9-track drives, but actually used a head on a rotating drum, about like in a VCR (I believe all 6250 FCI drives worked that way). – Jerry Coffin May 23 '12 at 19:32
@Loki - whether Jerry advocates it or not, he seems to be correct. Though what this describes is 6 bits plus parity. My first thought - parallel data across the width of magnetic tape must be quite sensitive to alignment and tape-stretch issues. – Steve314 May 23 '12 at 19:33
Paper tape is also the reason the "delete" control character is 0x7F: So that you could "delete" a character on the tape by punching out all 7 holes. – dan04 May 24 '12 at 1:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.