区位码、国标码、机内码

一、区位码

       1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉字编码 国家标准 GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。
国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码。
    汉字库分布情况如下:
      
 一级汉字  16-55
      
 二级汉字  56-87
      
 三级汉字  1-9
      
 空闲未用  10-15
  通常,在DOS下的各汉字系统中,同时按Alt键和F1键即可调用区位码输入方法。而在Windows中常用Ctrl+空格键和Ctrl+Shift键调出区位码。如“2901”代表字,“4582”代表字,“8150”代表字,这些都是汉字,用区位码还可以很轻松地输入特殊符号,比如,“0189”代表”(符号)“0528”代表”(日本语),“0711”代表“Й”(俄文)“0949”代表”(制表符)
  在区位码中,01-09区为特殊字符,10-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列)56-87区为二级汉字(3008个汉字,按部首次序排列) 在区位码汉字输入方法中,汉字编码无重码,在熟练掌握汉字的区位码后,录入汉字的速度是很快的,但若想记忆住全部区位码是相当困难的,常使用于录入特殊符号,如制表符、希腊字母等,这里简单介绍几个区。

区位码 - 部分国际区位编码

  区号:01 【各类符号】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0100  、  · ˉ ˇ ¨   -  ‖ … ' ' " "   
0120      」『      ± × ÷    ∑ ∏ 
0140  ∩   √      ∫  ≡  ≈   ≠   
0160 ≤ ≥ ∞   ♂ ♀ ° ′ ″   ¤   ‰ § №   
0180 ○ ●    □ ■  ▲  → ← ↑ ↓  
  区号:02 【各类数字】 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0200             
0220                     
0240                     
0260                  
0280             
  区号:03 【符号、字母】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
0300       '(            
0320                    
0340                     
0360    _                 
0380                
  区号:06 【罗马字母】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
0600 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ 
0620Υ Φ Χ Ψ Ω α β γ δ ε ζ η 
0640θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω 
0660 0680
  区号:08 【汉语拼音】 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
0800 ā á ǎ à ē é ě è ī í ǐ ì ō ó ǒ ò ū ú ǔ 
0820 ù ǖ ǘ ǚ ǜ ü ê    
0840                     
0860               
0880 
  区号:09 【制表字符】 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
0900 ─  │          ┌    
0920 ┐    └    ┘    ├        
0940 ┤        ┬        ┴    
0960     ┼                
0980

 

二、机外码

机外码 目前常用的机外码主要有区位码,国标码,首尾码,拼音码,五笔字型等

三、国标码

中国国家标准汉字信息交换码

二、区位码、国标码、机内码

汉字机内码,又称汉字ASCII,简称内码,指计算机内部存储,处理加工和传输汉字时所用的由01符号组成的代码。输入码被接受后就由汉字操作系统输入码转换模块转换为机内码,与所采用的键盘输入法无关。机内码是汉字最基本的编码,不管是什么汉字系统和汉字输入方法,输入的汉字外码到机器内部都要转换成机内码,才能被存储和进行各种处理。

  汉字在计算机内部其内码是唯一的。因为汉字处理系统要保证中西文的兼容,当系统中同时存在ASCII和汉字国标码时,将会产生二义性。例如:有两个字节的内容为30H21H,它既可表示汉字的国标码,又可表示西文“0”“!”ASCII码。为此,汉字机内码应对国标码加以适当处理和变换。

GB码的机内码为二字节长的代码,它是在相应GB码的每个字节最高位上加“1”,即

  汉字机内码=汉字国标码+8080H

  例如,上述字的国标码是3021H,其汉字机内码则是B0A1H

  汉字机内码的基础是汉字国标码

  机内码:为了避免ASCII码和国标码同时使用时产生二义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。这样既解决了汉字机内码与西文机内码之间的二义性,又使汉字机内码与国标码具有极简单的对应关系。

汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码。

  举例:机内码位BEDF,求区位码?

  有两种解法:1.BEDFH-A0A0H=1E3FH=7743D

2.BEDFH-8080H=3E5FH(国标码),3E5FH-2020H=1E3FH=7743D

原文地址:https://www.cnblogs.com/whisht/p/4098855.html