Today, let's discuss about Japanese letters / characters encoded for computers.

Genji commentary (postscript on left)
In Japanese computer files, sometimes you find LARGE size of English letters or the small size of Katakanas like アイウエオ.
Let me explain what I know about them.

ASCII

In 1970's, for the first time we used computers, we had only Latin alphabets, numbers, and miscellaneous symbols like ~!@#$%^&*()_+`{}|[]\:";'>?,./.
The letters were encoded to numbers with some rules.
The rule is called as encoding scheme.
The most popular encoding scheme was ASCII.
(It is most popular for now too.)
In Japan, we used computers within ASCII.
Thus we could only speak English ("Hello") or romanized Japanese ("ARIGATO").
ASCII had only 128 characters.

JIS X 0201

Later, Japanese industrial standard JIS X 0201 had been established.
It was encoding scheme to encode katakana to numbers for the computer use.
Then we could speak katakana to.
アリガトウ is the katakana string that is pronounced as ARIGATO which means Thank You.
JIS X 0201 had 191 letters.

Katakanas are phonographs so you can only describe the pronunciation with them.
We write Japanese with not only Katakanas, but also Hiranaga, Kanji (Hanzi -- Chinese ideographs).

JIS X 0208 1978

Later, in 1978, the first version of JIS X 0208 had been established.
It has 6879 codes.
524 were katakanas, Latin alphabets, numbers, hiraganas, symbols, Greek alphabets (mathematicians used them), and Cyrillic alphabet (intelligent men used them to study Soviet Union's strategy, I heard).

ASCII needs only 7 bits to encode one letter.
The number of code points (slots for each letter) is 128 that equals the seventh power of two.

JIS X 0201 needs 8 bits to encode one letter.
The number of code points is 256, the eighth power of two.

BIT stands for binary digit which means one digit of binary.
1 bit can contain binary information -- YES or NO, TRUE or FALSE, red or green, fish or meat, and so on.

2 bits be in 4 status 00, 01, 10, 11.
So 2 bits code can contain 4 kinds of information like spade, heart, diamond, or club.
4 equals the second power of two.

One ASCII letter is 7bit so it can contain 128 letters.
One JIS X 0201 letter is 8bit so it can contain 256 letters, but in the JIS X 0201 standard, only 191 letters are set.

One JIS X 0208 is 16 bits long.
If you can use 16 bits fully, you can set the 16th of two == 65,526 letters with it.
But JIS X 0208 has only 6879 codes.
Because each byte must spare 18 bytes for control codes -- the special character to control the computers.

JIS X 0208's katakana, numbers, Latin alphabets, and some of the symbols have identical glyphs (shapes) as the JIS X 0201.
But the two encodings have two different coding system.
In other words, the two encodings are incompatible.

Vendor codes

So the computer makers and users had been wondering whether there were two sets of duplicated letters or the same set of letters have two different codes.

The makers (i.e. IBM, Microsoft, Apple etc.) decided that there were two different sets of letters and they called them Zenkaku (fullwidth) and Hankaku (halfwidth).

The JIS X 0201 compatible letters like abcABC0123アイウエオ are encoded in one byte.
The letters were called hankaku which means halfwidth.

The JIS X 0208 compatible letters like abcABC012アイウエオ are encoded in two bytes with hiraganas(あいうえお) and kanjis(漢字).
The letters were called zenkaku which means fullwidth.

Note that the terms hankaku / zenkaku are NOT official terms set in JIS.
They were only spoken by private companies.

But it was very natural that hankaku letters had half physical size to the zenkaku letters.
At that time, the width of the letters displayed on the computer screen was fixed.
80 letters (= 80 ASCII / JIS X 0208 bytes) can be shown in one line for the maximum.
So if one Zenkaku letter is double in size to the Hankaku letter, 40 characters can be shown in one line.
It is quite simple.

The JIS X 0201 letters were called as 1 byte letters (SBCS which stands for Single Byte Character System).
The JIS X 0208 characters were called as 2 byte characters (DBCS which stands for Double Byte Character System).
Note that those terms are NOT in JIS standards too.

JIS X 0208:1997

In 1997, JIS X 0208's latest version was established.
In the standard, they said:
* The duplicated encoding is NOT allowed.
* If you use JIS X 0201 and JIS X 0208 characters together, you CANNOT use JIS X 0201 katakanas.
* If you use JIS X 0201 and JIS X 0208 characters together, you CANNOT use JIS X 0208 Latin alphabets, numbers, and the duplicated symbols.

And JIS X 0208 also added:
* For the time being, you can use the different codes of the JIS X 0201 katakanas for only the compatibility purpose.
* The names of each letters for compatibility are started with the string "HALFWIDTH".
* For the time being, you can use the different codes of the JIS X 0208 alphabets, numbers, and the duplicated symbols for only the compatibility purpose.
* The names of each letters for compatibility are started with the string "FULLWIDTH".

Now it is 2014 and the description is not updated since 1997.
The JIS X 0213, the successor standard of JIS X 0208, the same description is inherited.

Unicode

In Unicode, the current world's standard of characters, the Zenkaku and Hankaku characters are encoded in the Halfwidth and Fullwidth Forms block too.

Each characters had the property to suggest whether is should be shown in halfwidth or fullwidth.

In short, you can use halfwidth / fullwidth letters freely.
JIS approves it temporary -- for about these 14 years.