C語言程式設計 ASCII美國標準資訊交換標準碼 簡介

來源:互聯網
上載者:User
美國標準資訊交換標準碼
( 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)                                      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個代碼中的某些總是跟隨著第二個位元組。
    這兩個位元組一起(稱作首位元組和跟隨位元組)定義一個字元,通常是一個複雜的表意字元。

ref: http://baike.baidu.com/view/15482.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.