`
cjc
  • 浏览: 673734 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何随机生成指定数目的国标汉字?

 
阅读更多


  为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。在汉字的区位码中,高两位为区号,低两位为位号。 在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字 。其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。

所以,当我们需要n个任意汉字时,我们不必建一个全部汉字表,而是利用区位码实现常用汉字的提取。

下面的代码可以实现任意数目汉字的生成:

Private Sub getrndhanzi(ByVal n As Integer)
Dim s() As String, i As Integer
Dim temp1 As Integer, temp2 As Integer
ReDim s(1 To n)
Randomize
For i = 1 To n
temp1 = 16 + Int(Rnd * 72)
If temp1 = 55 Then
temp2 = Int(Rnd * 90) '一级汉字从1601-1694,1701-1794,.....5401-5494,5501-5589,共94*40-5=3755 个汉字
Else
temp2 = Int(Rnd * 95) '二级汉字从5601-5694,5701-5794,.....8601-8694,8701-8794,共94*32=3008 个汉字
End If
s(i) = Chr("&H" & Hex(temp1 + 160) & Hex(temp2 + 160))
Next
Debug.Print Join(s, "")'输出
End Sub

Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 25 '分别生成1-25个任意汉字
getrndhanzi i
Next
End Sub

输出:


夫敞
途罨椽
涅搦侄铽
榨藸禒艟球
枵舟斟盯滩桫
狲暗田苫撂蕾岢
冠澧炫鲼噘惺馘柘
巧愁炔哔臆策籼锭昏
紶假媪慈乘嘎肤景濡薤
呋刨锺灰榉懋唇弱献囟垤
均耋撤阗驿迩愍殒埚砸宕薅
蒹翦俄形碌哧烀爝懒缭嫔捭浑
瑾砜疬哜遒濂勾彐綘珩苓就萌炳
光椁旖趁鲲頎壕狁媪暑额忾帷淤黹
湫熏裤降旺廓淳傻蜕脬荪色注紫劾吾
陶沥瑗骶埴于喃刮瘿突赅斛简铨觞抨唼
格鸽乜衍夙菀鲡败陆褐哙苑滓淆踵讫头绑
德泠婷岙湔池桨郅峁汩卒控诉刍镗椎鬣越嫉
义懂聂其定鳓脯膪巯吐昏罚返抖陵沌戗喘茺缂
废雾旯浠疼赃勋妓鳟埏帮盂蕹朐裂祆膻拌脎威纯
宛免作绣稞涑枭搬怿旦熨呈弃驰翔聚饰栩燧艴氢贫
豕源髑乍蚍夏己履毕芤毁篑子褊崖坏忑霉钿瘢驵迁裨
獬纷胚桨衫蹒疯祧武琢吣酃踱免逘浊顸坐磬挫郐婶缪锰
拽技薯帙陕槲逗蜱嘧雌怙诖椭踉盔锍认致暝榴蘖逆捻螨噬

附:

汉字与区位码转换代码:

Function quwei(ByVal x As String) As String '获得某汉字或字符对应的的区位码
If Asc(x) >= 0 Then Exit Function
x = Hex(Asc(x))
quwei = Format(CDec("&H" & Left(x, 2)) - 160, "00") & Format(CDec("&H" & Right(x, 2)) - 160, "00")
End Function


Function hanzi(ByVal x As String) As String'获得某区位码对应汉字或字符
hanzi = Chr("&H" & Hex(Val(Left(x, 2)) + 160) & Hex(Val(Right(x, 2)) + 160))
End Function

分享到:
评论

相关推荐

    Java代码实现随机生成汉字的方法

    GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,由中国国家标准总局发布,1981年5月1日实施。GB2312 编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文...

    用C#生成随机中文汉字验证码的基本原理.txt

    - **GB2312-80**:这是最早的国家标准之一,用于汉字信息交换,定义了6763个简体汉字和682个图形符号,是中文信息处理的基础。 - **GB18030-2000**:该标准扩展了GB2312-80,并包含了更多的汉字和符号,支持更多的...

    .net 随机生成汉字

    中国的国家标准GB2312-80和GB18030-2000是汉字编码的关键标准。GB2312是早期的汉字编码字符集,包含了常用的基本汉字,而GB18030则是其扩展,包含更多的汉字和符号。在.NET编程中,默认的代码页是GB18030简体中文。...

    java 各种测试数据的随机生成器,.rar

    简单易用的随机数据生成器。一般用于开发和测试阶段的数据填充、模拟、仿真研究、演示等场景。...随机国家或地区(基于ISO 3166-1标准) 虚拟经纬度 随机邮编 虚拟联系地址 随机固话区号 虚拟固话号码

    SP800-22rev1a 随机数与伪随机数生成

    《SP800-22rev1a 随机数与伪随机数生成》是一份由美国国家标准与技术研究院(NIST)发布的关于随机数和伪随机数生成器的统计测试套件的规范文档。该文档旨在为密码学应用提供一个标准化的测试框架,用于评估随机数和...

    中文汉字随机码字符

    ### 中文汉字Unicode码知识点详解 #### 一、Unicode简介 Unicode是一种国际化的字符编码标准,旨在为世界上所有书面语言的字符提供统一的编码方案。它解决了不同国家和地区使用多种字符集所带来的兼容性问题,使得...

    组织机构代码生成器

    1. **合规性**:首先,一个有效的组织机构代码生成器必须遵循国家或地区规定的编码规则。在中国,组织机构代码由9位数字组成,包括一个校验码,确保每个代码的唯一性。生成器会按照这些规则生成符合标准的代码。 2....

    Python-Barcodegenerator能自动生成EAN13EAN8和EAN5条形码的桌面应用

    **Python-Barcodegenerator** 是一个...用户只需简单操作,即可生成符合标准的EAN条形码图像,适用于多种业务场景。通过了解这个应用的工作原理和背后的Python技术,我们可以更好地理解和利用这个工具,提升工作效率。

    基于细胞神经网络的伪随机数生成方法.pdf

    在本文中,作者董丽华和药国莉提出了一种基于6-CNN的64位伪随机数生成方法,旨在解决有限精度效应导致的混沌系统性能退化问题,提高生成随机序列的统计性能。 该方法的核心在于通过精细调控6-CNN在每次迭代过程中的...

    java代码产生汉字库

    - **GB2312**:中国国家标准,简体中文的基本汉字编码,包含了6763个常用汉字。 - **GBK**:在GB2312基础上扩展的编码,兼容GB2312,增加了对繁体字和其他字符的支持,总共包含20902个字符。 - **Unicode**:一个...

    国标中文简体汉字大全.txt

    8600+国标中文简体汉字 二十六个字母大小写 遵循国家文字当日前最新标准 拼音顺序排列。

    国标码查询系统\国家标准信息汉字交换码、国标码查询软件

    国标码查询系统\国家标准信息汉字交换码、国标码查询软件免费下载地址HTTP://WWW.SLPMRJ.COM/GBMCX.RAR为客户提供单个或多个姓名国标码/交换码、国家标准信息汉字编码的查询与报表打印功能,软件不限班级,不限人数

    sp800_90c_second_draft.pdf 随机数生成器标准 NIST

    NIST SP800-90C是美国国家标准与技术研究院(NIST)发布的关于随机数生成器(Random Number Generators, RNGs)的推荐标准草案。这一草案由Elaine Barker和John Kelsey编写,并发布于2016年4月。它是NIST SP 800-90...

    汉字转国标码

    国标码,全称为“国家标准信息交换汉字编码”,是中国大陆地区广泛采用的汉字编码标准,主要分为GB2312、GBK和GB18030等几个阶段。 1. GB2312编码: GB2312(《信息交换用汉字编码字符集·基本集》)是1980年发布...

    基于Matlab_Simulink的随机路面建模与不平度仿真

    - **生成随机路面时间激励信号**:通过设置不同的车速条件,可以在Matlab_Simulink环境中生成符合B级和C级标准的随机路面时间激励信号。这些信号将作为车辆动力学模型的输入,用于评估车辆的动态性能。 ##### 3. ...

    ucGUI-gb2312汉字生成器v3.zip

    国标GB2312字库是中文字符的一种编码标准,包括了6763个常用汉字,是嵌入式设备中常见的中文支持方式。ucGUI-gb2312汉字生成器v3是一款专门针对ucGUI库的工具,用于生成符合GB2312编码的汉字字库,方便嵌入式开发者...

    点阵LED字模生成工具.zip

    用户可生成自己需要的各种小字库,也可以生成自定义的国标一二级汉字库。 0.生成自定义的小字库: 0.使用PCTOLCD的各种调整功能调整出您需要的文字样式,如字体,字样(下划,倾斜,加 粗),大小(各种点阵大小的字体,可...

    python 3 实现NIST二进制序列随机测试

    NIST(美国国家标准与技术研究院)发布了一套标准,即NIST SP 800-22,用于评估二进制序列的随机性。这些测试旨在确保生成的随机数具有不可预测性和统计上的独立性,这对于加密算法、数字签名和安全协议的正确性至关...

Global site tag (gtag.js) - Google Analytics