`
inshect
  • 浏览: 189431 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ASCII

阅读更多
美国标准信息交换标准码
( American Standard Code for Information Interchange, ASCII )

       在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机比较傻,只有0和1两位数的二进制比较适合于它使用),同样的,象a、b、c、d这样的52个字母(包括大写)、以及0、1、2等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪个数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通讯而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪个二进制数来表示。
       美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。
ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:
        0~32及127(共34个)是控制字符或通讯专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为 8、9、10 和 13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
        33~126(共94个)是字符,其中48~57为0到9十个阿拉伯数字;
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
       后128个称为扩展ASCII码,目前许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展 ASCII 码允许将每个字符的第 8 位用于确定附加的 128 个特殊符号字符、外来语字母和图形符号。以下为标准ASCII表:

Bin               Dec     Hex         缩写/字符                                      解释
0000 0000    0          00            NUL (null)                                      空字符   
0000 0001    1          01            SOH (start of handing)                  标题开始 
0000 0010    2          02            STX (start of text)                          正文开始 
0000 0011    3          03            ETX (end of text)                           正文结束
0000 0100    4          04            EOT (end of transmission)            传输结束 
0000 0101    5          05            ENQ (enquiry)                               请求 
0000 0110    6          06            ACK (acknowledge)                       收到通知 
0000 0111    7          07            BEL (bell)                                      响铃
0000 1000    8          08            BS (backspace)                             退格 
0000 1001    9          09            HT (horizontal tab)                         水平制表符 
0000 1010    10        0A            LF (NL line feed, new line)             换行键 
0000 1011    11        0B            VT (vertical tab)                             垂直制表符 
0000 1100    12        0C            FF (NP form feed, new page)        换页键 
0000 1101    13        0D            CR (carriage return)                      回车键
0000 1110    14        0E            SO (shift out)                                 不用切换 
0000 1111    15        0F            SI (shift in)                                     启用切换 
0001 0000    16        10            DLE (data link escape)                  数据链路转义 
0001 0001    17        11            DC1 (device control 1)                  设备控制1 
0001 0010    18        12            DC2 (device control 2)                  设备控制2 
0001 0011    19        13            DC3 (device control 3)                  设备控制3 
0001 0100    20        14            DC4 (device control 4)                  设备控制4 
0001 0101    21        15            NAK (negative acknowledge)        拒绝接收 
0001 0110    22        16            SYN (synchronous idle)                 同步空闲 
0001 0111    23        17            ETB (end of trans. block)              传输块结束 
0001 1000    24        18            CAN (cancel)                                 取消
0001 1001    25        19            EM (end of medium)                      介质中断 
0001 1010    26        1A            SUB (substitute)                            替补 
0001 1011    27        1B            ESC (escape)                                溢出 
0001 1100    28        1C            FS (file separator)                         文件分割符 
0001 1101    29        1D            GS (group separator)                    分组符 
0001 1110    30        1E            RS (record separator)                   记录分离符 
0001 1111    31        1F            US (unit separator)                        单元分隔符 

0010 0000    32        20            空格
0010 0001    33        21            !
0010 0010    34        22            "
0010 0011    35        23            #
0010 0100    36        24            $
0010 0101    37        25            %
0010 0110    38        26            &
0010 0111    39        27            '
0010 1000    40        28            (
0010 1001    41        29            )
0010 1010    42        2A            *
0010 1011    43        2B            +
0010 1100    44        2C            ,
0010 1101    45        2D            -
0010 1110    46        2E            .
0010 1111    47        2F            /
0011 0000    48        30            0
0011 0001    49        31            1
0011 0010    50        32            2
0011 0011    51        33            3
0011 0100    52        34            4
0011 0101    53        35            5
0011 0110    54        36            6
0011 0111    55        37            7
0011 1000    56        38            8
0011 1001    57        39            9
0011 1010    58        3A            :
0011 1011    59        3B            ;
0011 1100    60        3C            <
0011 1101    61        3D            =
0011 1110    62        3E            >
0011 1111    63        3F            ?
0100 0000    64        40            @

0100 0001    65        41            A
0100 0010    66        42            B
0100 0011    67        43            C
0100 0100    68        44            D
0100 0101    69        45            E
0100 0110    70        46            F
0100 0111    71        47            G
0100 1000    72        48            H
0100 1001    73        49            I
0100 1010    74        4A            J
0100 1011    75        4B            K
0100 1100    76        4C            L
0100 1101    77        4D            M
0100 1110    78        4E            N
0100 1111    79        4F            O
0101 0000    80        50            P
0101 0001    81        51            Q
0101 0010    82        52            R
0101 0011    83        53            S
0101 0100    84        54            T
0101 0101    85        55            U
0101 0110    86        56            V
0101 0111    87        57            W
0101 1000    88        58            X
0101 1001    89        59            Y
0101 1010    90        5A            Z
0101 1011    91        5B            [
0101 1100    92        5C            \
0101 1101    93        5D            ]
0101 1110    94        5E            ^
0101 1111    95        5F            _
0110 0000    96        60            `

0110 0001    97        61            a
0110 0010    98        62            b
0110 0011    99        63            c
0110 0100    100      64            d
0110 0101    101      65            e
0110 0110    102      66            f
0110 0111    103      67            g
0110 1000    104      68            h
0110 1001    105      69            i
0110 1010    106      6A            j
0110 1011    107      6B            k
0110 1100    108      6C            l
0110 1101    109      6D            m
0110 1110    110      6E            n
0110 1111    111      6F            o
0111 0000    112      70            p
0111 0001    113      71            q
0111 0010    114      72            r
0111 0011    115      73            s
0111 0100    116      74            t
0111 0101    117      75            u
0111 0110    118      76            v
0111 0111    119      77            w
0111 1000    120      78            x
0111 1001    121      79            y
0111 1010    122      7A            z
0111 1011    123      7B            {
0111 1100    124      7C            |
0111 1101    125      7D            }
0111 1110    126      7E            ~ 

0111 1111    127      7F            DEL (delete)                                删除  
另外还有128-255的ASCII字符
字符集简史
    6000年前 象形文字
    3000年前 字母表
    1838年到1854年 Samuel F. B. Morse发明了电报,字母表中的每个字符对应于一系列短的和长的脉冲
    1821年到1824年 Louis Braille发明盲文,6位代码,它把字符、常用字母组合、常用单字和标点进行编码。
        一个特殊的escape代码表示后续的字符代码应解释为大写。一个特殊的shift代码允许后续代码被解释为数字。
    1931年 CCITT标准化Telex代码,包括Baudot #2的代码,都是包括字符和数字的5位代码。
    1890年 早期计算机的字符码是从Hollerith卡片,6位字符码系统BCDIC(Binary-Coded Decimal Interchange Code:二进制编码十进制交换编码)
    60年代 扩展为8位EBCDIC,IBM大型主机的标准
    1967年 美国信息交换标准码(ASCII:American Standard Code for Information Interchange)
            在字符长度是6位、7位还是8位的问题上产生了很大的争议。从可靠性的观点来看不应使用替换字符,
            因此ASCII不能是6位编码,但由于费用的原因也排除了8位版本的方案(当时每位的储存空间成本仍很昂贵)。
            这样,最终的字符码就有26个小写字母、26个大写字母、10个数字、32个符号、33个句柄和一个空格,总共128个字符码。
            ASCII现在记录在ANSI X3.4-1986字符集-用于信息交换的7位美国国家标准码(7-Bit ASCII:7-Bit American National
            Standard Code for Information Interchange),由美国国家标准协会(American National Standards Institute)发布。
            图2-1中所示的ASCII字符码与ANSI文件中的格式相似。

   
   
ASCII国际问题
    ASCII是美国标准,所以它不能良好满足其它讲英语国家的需要。例如英国的英镑符号(£)在哪里?
    拉丁语字母表重音符号
    使用斯拉夫字母表的希腊语、希伯来语、阿拉伯语和俄语。
    汉字系统的中国象形汉字,日本和朝鲜。
   
    1967年,国际标准化组织(ISO:International Standards Organization)推荐一个ASCII的变种,
    代码0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“为国家使用保留”,而代码0x5E、0x60和0x7E标为
    “当国内要求的特殊字符需要8、9或10个空间位置时,可用于其它图形符号”。这显然不是一个最佳的国际解决方案,
    因为这并不能保证一致性。但这却显示了人们如何想尽办法为不同的语言来编码的。
   
扩展ASCII
    1981年 IBM PC ROM256个字符的字符集,即IBM扩展字符集
    1985年11 Windows字符集被称作“ANSI字符集”,遵循了ANSI草案和ISO标准(ANSI/ISO 8859-1-1987,简“Latin 1”。
    ANSI字符集的最初版本:
    1987年4月代码页437,字符的映像代码,出现在MS-DOS 3.3


双字节字符集
    双字节字符集(DBCS:double-byte character set),解决中国、日本和韩国的象形文字符和ASCII的某种兼容性。
    DBCS从256代码开始,就像ASCII一样。与任何行为良好的代码页一样,最初的128个代码是ASCII。
    然而,较高的128个代码中的某些总是跟随着第二个字节。
    这两个字节一起(称作首字节和跟随字节)定义一个字符,通常是一个复杂的象形文字。

NUL VT 垂直制表 SYN 空转同步
SOH   标题开始 FF    走纸控制 ETB   信息组传送结束
STX   正文开始 CR    回车 CAN   作废
ETX   正文结束 SO    移位输出 EM    纸尽
EOY   传输结束 SI     移位输入 SUB   换置
ENQ   询问字符 DLE   空格 ESC   换码
ACK   承认 DC1   设备控制1 FS    文字分隔符
BEL   报警 DC2   设备控制2 GS    组分隔符
BS    退一格 DC3   设备控制3 RS    记录分隔符
HT    横向列表 DC4   设备控制4 US    单元分隔符
LF    换行 NAK   否定 DEL   删除

键盘常用ASCII码
ESC键 VK_ESCAPE (27)
回车键: VK_RETURN (13)
TAB键: VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键: VK_SHIFT ()
Ctrl键: VK_CONTROL (17)
Alt键: VK_MENU (18)
空格键: VK_SPACE (/32)
退格键: VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键: VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键: VK_INSERT (45)
Home键: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键: VK_END (35)
Delete键: VK_DELETE (46)
方向键(←): VK_LEFT (37)
方向键(↑): VK_UP (38)
方向键(→): VK_RIGHT (39)
方向键(↓): VK_DOWN (40)
F1键: VK_F1 (112)
F2键: VK_F2 (113)
F3键: VK_F3 (114)
F4键: VK_F4 (115)
F5键: VK_F5 (116)
F6键: VK_F6 (117)
F7键: VK_F7 (118)
F8键: VK_F8 (119)
F9键: VK_F9 (120)
F10键: VK_F10 (121)
F11键: VK_F11 (122)
F12键: VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0: VK_NUMPAD0 (96)
小键盘1: VK_NUMPAD0 (97)
小键盘2: VK_NUMPAD0 (98)
小键盘3: VK_NUMPAD0 (99)
小键盘4: VK_NUMPAD0 (100)
小键盘5: VK_NUMPAD0 (101)
小键盘6: VK_NUMPAD0 (102)
小键盘7: VK_NUMPAD0 (103)
小键盘8: VK_NUMPAD0 (104)
小键盘9: VK_NUMPAD0 (105)
小键盘.: VK_DECIMAL (110)
小键盘*: VK_MULTIPLY (106)
小键盘+: VK_MULTIPLY (107)
小键盘-: VK_SUBTRACT (109)
小键盘/: VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)
分享到:
评论

相关推荐

    float2ascii.rar_acsii浮点_ascii2float_ascii转换float_float转化为ascii_转

    浮点数在计算机内部是以二进制形式存储的,但在文本显示或者网络传输时,通常会将其转换为ASCII码形式。这个过程涉及到浮点数与ASCII码之间的相互转换。本文将详细探讨`float2ascii`和`ascii2float`的概念以及实现...

    ASCII码表 ASCII码表

    ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ASCII码表 ...

    ASCII码表及扩展ASCII码表

    ### ASCII码表及扩展ASCII码表 #### 一、ASCII码简介 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,最初被设计为7位的编码,用于...

    字符串转ASCII ASCII转字符串

    在计算机科学中,字符编码是将字符转换成数字表示的过程,而ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是最基础的字符编码系统之一。它使用7位二进制数来表示128种不同的...

    ASCII表壁纸(高清)

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,最初被设计用于电信领域。它使用7位二进制数来表示128种可能的字符,包括英文大小写字母、...

    ASCII及十六进制转换工具 ASCII及十六进制转换工具

    在IT领域,ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)和十六进制(Hexadecimal)是两种常见的数据表示形式,广泛应用于编程、网络通信、数据分析等多个场景。...

    Ascii到Hex转换器

    【Ascii到Hex转换器】是一种工具,用于将ASCII编码的字符转换为对应的十六进制表示。在计算机科学和编程领域,ASCII(美国标准信息交换代码)是广泛使用的一种字符编码系统,它定义了128个不同的字符,包括字母、...

    C# 16进制转换ASCII

    在编程领域,尤其是在C#语言中,理解和掌握16进制(Hex)与ASCII之间的转换是至关重要的。本文将深入探讨这个主题,帮助初学者更好地理解这两种表示方式,并提供实际的代码示例来演示如何在C#中进行转换。 首先,...

    汉字转ascii码程序

    标题中的“汉字转ASCII码程序”是指一个软件或工具,其功能是将汉字转换成ASCII编码,这是一种在计算机中广泛使用的字符编码系统。ASCII码主要包含英文字符、数字和一些特殊符号,它使用7位二进制来表示128种不同的...

    ASCII HEX 互转工具

    在IT领域,ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)和十六进制(Hexadecimal)是两种常见的数据表示方式。ASCII码是一种字符编码标准,它使用7位二进制来表示128种不同...

    ASCii字库8x16

    ### ASCii字库8x16点阵简介 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。在计算机中,每一个...

    C# 格式的ASCII到Unicode转化源码

    byte[] asciiBytes = Encoding.ASCII.GetBytes(asciiString); // ASCII到Unicode (UTF-16) 的转换 UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); char[] unicodeChars = new char[asciiBytes....

    ASCII字符以8*8点阵显示 内附ASCII二进制文件

    在IT领域,ASCII字符是一种广泛使用的编码系统,它定义了128个不同的字符,包括数字、字母、标点符号和一些控制字符。这个压缩包文件的标题和描述表明,它可能包含了一个程序(ASSCIII.exe)以及相关资源,用于以8x8...

    ASCII码表完整版.pdf

    ASCII 码表完整版 ASCII 码表是计算机领域中使用最广泛的字符编码标准,美国国家标准学会(ANSI)于 1963 年制定。ASCII 码表是一种 7 位元编码标准,共有 128 个字符,包括控制字符和可打印字符。 控制字符 控制...

    16进制与ASCII互转

    在计算机科学领域,16进制(Hexadecimal)和ASCII编码是两种常见的数据表示方式。16进制是一种逢16进1的数制,常用于表示二进制数据,因为每四位二进制可以精确地对应一位16进制数字。而ASCII(American Standard ...

    ascII码背景墙纸,程序员专用

    在IT领域,ASCII码是一种广泛使用的字符编码标准,全称为美国标准信息交换代码(American Standard Code for Information Interchange)。这个编码系统定义了128个不同的字符,包括字母、数字、标点符号以及一些控制...

    ASCII和HEX相互转换

    在计算机科学领域,ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)和HEX(十六进制,Hexadecimal)是两种广泛使用的字符编码和数值表示方式。理解它们的相互转换对于软件开发...

    AB 1769 ASCII码模块手册

    根据提供的文件信息,以下是关于“AB 1769 ASCII码模块手册”的详细知识点说明: 标题:“AB 1769 ASCII码模块手册” 描述:“AB 1769 ASCII模块编程说明。AB网上难找到,最好还是不要用AB的吧。” 标签:“AB PLC;...

    ASCII码字符相互转换函数

    在计算机科学领域,ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)是一种广泛使用的字符编码标准,它定义了128个不同的字符,包括字母、数字、标点符号以及一些特殊控制字符...

    16进制转ascii码工具

    在计算机科学领域,16进制(Hexadecimal)和ASCII码是两种常见的数据表示方式,它们在编程、数据传输和文本处理中起着至关重要的作用。这个“16进制转ASCII码工具”是为了帮助用户方便地进行这两种编码之间的转换。 ...

Global site tag (gtag.js) - Google Analytics