Ascill Codes
大家都知道电脑真正只能处理0和1,这就意味着电脑通过能序列的0和1翻译成一些数值,那就成了一些简单的数字操作符
然而,这不是很明显通过0和1去代表那字母和字符,所以为了解决这个,电脑使用ascii表,通过罗马字符来表达不同的字符,在这个表中每个字符都是由一个相同的数字来代
表,例如:在ascii表中,用65来代表这个大写的A,那是很容易去用0和1去代表这个65,而它的二进制为1000001。
这个标准的Ascii表定义为128个字符码(0到127),其中,最前的32个是用来控制(不打印出),另外96个用来代表不同的字符
* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | TAB | LF | VT | FF | CR | SO | SI |
1 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
2 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |
这个面板是采用16进制有序而容易去读:行的数字代表这第一个数字,列代表第二个,例如:“A”字符是位第4行,第一列,所以用16进制来表示为0x41(65)
由于现在几乎所有的系统都以8位作为一个字节,所以能产生256不同的值,除128位标准的ascii作为已知外,不同平台和本地依赖,所以他们大多是ascii的扩展字符
现在有两个用ascii的扩展字符,其中一个是OEM,它来自于默认字符的合并在IBM-PC ,另外一个是几乎用于近代的操作系统
第一,OEM字符集,是一所使用的硬件的绝大多数PC兼容的机器,也被用在旧的DOS系统。它包括一些外国的迹象,一些标记字符和块代表面板。
ANSI字符集是一种标准,许多系统整合,比如Windows,一些UNIX平台和很多独立的应用程序。它包括更多的本地符号和标记字母,这样它就可以用于不需要被重新定义在更多的语言
PS:第一次翻译技术文章,英语不好,真不好搞,但作为屌丝程序员,必须要多些阅读国外文章,好吧,让战火继续燃烧吧!
原文:http://www.cplusplus.com/doc/ascii/