摹14●摹 1囊

l9髓 丰 3̂

齐 弃 靖尔 大 学学 报

J伽rn|l 0fQiq 嘶 劬

q 言实现不 字

|I∈峰 张宏烈 周长支

一 1 /

(齐弃暗拳太掌工鼍qb,一r /1 -i l r

夕/

蔫耍 奉文培出了用C语言赛丑CCDOS cKM最丰.I境 珥̂转蕞的方基,t方

法实真{王碉t果t好. .

关-司 文字 墨整兰 乏

0 前言

机冉玛疗瓣内码,它是系统内部处理和存贮投字面使用的代码.窳所属知,西文字符的机

相同,但它

Ascii码.丽汉字月根据桃蔓的不同,它们的内码囊||各不

t拽列这种对应规●,棘可以此为中阿 ,实现

不同汉字系统的内爵转换.

1 CCDOS与China汉字簟码对照裹

以H:机上爵种汉字系统a】 )s和Chi-

M 为倒t来讨论内码与交换码的对虚关系转换

方法.

下面列出部分汉字稿码对腻表.为便于用

敦学式子表达代码的对应关系,将交换码用它

的相对序号代瞢.同时,将内码用十进翻表示,

并分捌起十变量名,得弼下表汉字内码各字节

的敦值范圈.

2 转换算法

下面分捌培出两种汉字内爵转换的具钵算法,算莹D ∞ 内码转换为a 妁6内码)假

定已知从蠢文件中属序读取三十字节敦据L J,K.

D1、崩 崩是否为汉字)如暴不满足I≥71J≥t8,K≥65.爿不是汉字,转DI6

D2、诛 帮 玮 的相对翻 参量)I1 一71,J1 一4&K1≤K一65’

D3、啭换为交换码的序号)

】1 。6O+J1*26+K1≥.F E选基我德 I1、J1,K1从整体 匕看柞 —卜持嘲_洲 敦

,它

的位权分捌为26o、26、1.用上述公式实际上墨将这十特殊进翻致按位权晨开得霸—个十进翻

轰F).

D4, !换码序号转换成o0D0S两字节内码的■移量)

F%9‘≥N1、INT CF/94)~ l

t麓 膏囊tl997—∞一27

r

维普资讯 http://www.cqvip.com

齐 齐唔 尔丈 学学报 1 9 9 8l

D5、(形成 C∞ 0S的两字节内码)

176+M1≥M 161+N1≥N

D6、(判断是否结束)如果源文件结柬,划本算法告终;否阿读下一个字节,调整指针并返

回D1

倒如,汉字 阿 ,在China中的内码为714866,按上述算法可求出I1=0.J1=o.K1=1和

F=I,(因为I=71.J=48.K=66),进一步求出N1=1.M1一O以及M=176.N=162.即CC-

D(]S的内码为176、165。

算法H C )s内码转换为China内码)假定已从源文件中读取两字节数据M。N.

H1、(判断是否为汉字)如不满足M>~176.N≥161.则不是汉字,转H6。

H2、(求备字节相对偏移量)M-176~>M1.N-161>~N1。

H3、(转换为交换码序号)M1*94+NI>/F.

H4、(交换码序号转换为China三个字节内码蔼移量)F%26≥K1

INT( /56) 10) 1

rr /560) 1

H5、 威C,him 的三字节内码)

I1+71>_-I

J1+48~>J

K1+65>~K

H6、(判断是否结束)如果豫文件结束剐算法告终;否则读下一个字节,诃整指针返回

H1。

例如,汉字 哎 ,在CCDOS中的内码为176、165,即M=176.N=165按算法H可采出

M1=0.N1=4和F一4.进一步求出K1;4,Jl=0,I1=0以及I=71.3=48.K=69.即

c语言字符类型强制换成内码,C语言实现不同汉字系统的内码转换方法相关推荐

  1. C语言指针类型 强制转换

    关于C语言指针类型 强制转换  引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...

  2. C语言字符类型和数字类型互相转换

    int类型转换为char 直接在int变量后加上一个'0': 例如: int a = 10; printf("%c\n",a+'0') char转换为int类型 char类型的变量 ...

  3. c语言const类型强制转换,关于C++的强制类型转换浅析

    前言 一说起强制类型转换大家都很熟悉,相信很多学习完C++的朋友还在使用C语言的强制类型的方式 (类型)变量. C++其实也具有自己的一套强制类型转换它们分明是:static_cast  reinte ...

  4. C语言程序——类型强制转换

    文章目录 前言 一.类型强制转换 二.程序实例 代码如下 运行结果 结果分析 总结 前言 强制类型转换的作用就是将表达式的类型转换为类型名指定的数据类型. 一.类型强制转换 表达式进行强制转换的格式为 ...

  5. c语言编程560分钟,c语言把560分钟换成小时和分钟表示输出出来

    咋把度换成分,分换成秒, 度*60=分分*60=秒比如10°30′20"减去8°40′50"就等于1°49′30"再问:那是乘还是除 如何把数字换成时间请问WPS表格中如 ...

  6. c语言可以将负数强制转换成正数吗_C语言笔记(一、概述)

    1. C语言的特点 ①语言简洁.紧凑,使用方便.灵活.共有32个关键字(也称保留字),9种控制语句. ②运算符丰富,共有34种运算符. ③数据结构丰富,数据类型有:整型.实型.字符型.数组.指针.结构 ...

  7. C语言一百块钱换成十元20元,把100元人民币换成50元、20元、10元的纸币。计算出有多少种换法?...

    把100元人民币换成50元.20元.10元的纸币.计算出有多少种换法?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 把 ...

  8. c语言不同类型指针间的强转,C语言中不同的结构体类型的指针间的强制转换详解...

    C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险.只要理解了其内部机制,你会发现C是非常灵活的. 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在 ...

  9. C语言字符类型输入方式选择

    1.char是字符型,而字符是一种特殊的整数.每个字符都有一个整数编码,称为ASCII码.C语言中的字符型用关键字char表示,它实际存储的是字符的ASCII码.字符常量可以用单引号法表示.在语法上可 ...

最新文章

  1. Android 自定义百分比视图
  2. IBM X System ServerGuide 8.41 服务器 系统安装引导盘
  3. pg10 10.3 1 linux64,Install Postgresql 10 In Ubutnu 16.04 LTS
  4. 10-20-010-简介-目录-Kylin目录详解
  5. 2 _RESETFUL介绍
  6. Hive增加一列固定值
  7. list_for_each_entry和list_for_each_entry_safe
  8. w10计算机管理权限,设置win10管理权限_win10系统如何获取管理员权限
  9. 联想g510升级换什么cpu好_联想G510笔记本完全拆机指南(图解)
  10. 不安装运行时运行 .NET 程序 - NativeAOT
  11. Enterprise Architect 15 使用指南
  12. fadeIn()方法和fadeOut()方法
  13. oho,找工作有点难度
  14. 2019正睿Day1题解
  15. VUE前端开发环境版本查看命令
  16. 初识ecshop小京东(2)—— 分页功能
  17. 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
  18. S3C2440 开发板实战(9):poll机制
  19. 技术分享 | Goby食用指南之红蓝对抗
  20. NYOJ2347---LYQの字符串(技巧题:应该是滑动窗)

热门文章

  1. C++ new和malloc区别
  2. MATLAB 添加自有的工具包
  3. Eikonal equation:程函方程
  4. CVE-2022-0847-DirtyPipe-Exploit
  5. ASN.1编解码与编程
  6. TCP-IP协议栈概略图与TCP三次握手四次挥手
  7. oppo 手机侧滑快捷菜单_OPPO十年进化论,从A·V厂到国内第二
  8. VUe3 @cli(axios)跨域访问
  9. c语言实现感知器算法,感知器算法(c语言版).doc
  10. spark sql uv_内置函数_SparkSQL学习 - 编程那点事