博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言文件操作解析(一)
阅读量:7113 次
发布时间:2019-06-28

本文共 1286 字,大约阅读时间需要 4 分钟。

                                                        C语言文件操作解析(一)

       在讨论C语言文件操作之前,先了解一下与文件相关的东西。

一.文本文件和二进制文件

    文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。

    事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。

    通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息,这跟计算机硬件组成有关系,因为计算机里面的元件是晶体管,其只有两种稳定的状态,因此二进制的0和1能表示其状态。很多个晶体管的不同状态的组合便呈现给我们不同的信息了。下面以汉字在计算机中的表示为例。

二.汉字在计算机中的表示

   用计算机去处理汉字信息,必须对汉字进行编码,变成能被计算机识别的二进制。汉字编码主要有输入码、机内码、字形码三种。分别有不同的作用。

   输入码:为了能直接使用西方英文标准键盘输入汉字,必须制定相应的编码规则,如拼音码(拼音输入法)、数字码(数字输入法)等

   机内码:指汉字在计算机内部的表示形式,即二进制形式,通常采用两字节来表示一个汉字,每个字节的最高位设置为1(其值为负),如汉字“我”在计算机内的表示为11001110 11010010.

   字形码:存储在计算机内的汉字需要在屏幕上显示或者打印机上输出时,需要知道汉字的字形信息,而汉字的机内码并不能表示汉字的字形信息,因此需要专门的字形码 。最通用的字形信息显示采用点阵的形式,即将汉字的字形分解成若干个“点”形成的点阵。每个点有黑白两种信息,有笔画的用黑表示,反之用白表示。汉字的点阵信息量是很大的,比如16*16的点阵需要用256位表示其信息,则需要32字节的空间。

    计算机中存放了所有汉字的字形码组合起来的字形库也称字模库,当汉字输出或者显示的时候由专门的字形检索程序根据这个汉字的机内码在字模库中找出与之对应的字形码,然后根据字形码输出到显示设备上。

    所以我们平常所看到的文本文件或者图片等在计算机上都是以二进制形式存储,只是在显示的时候以人所能够识别的方式呈现给我们。

测试程序

#include
#include
int main(void) {
char s[]="我"; unsigned char *p=(unsigned char *)s; printf("%d\n",strlen(s)); printf("%X\n",*p); printf("%X\n",*(p+1)); return 0; }

输出结果:

2

CE
D2
Press any key to continue

转载地址:http://zlghl.baihongyu.com/

你可能感兴趣的文章
微软整合实验(四):迁移FSMO操作主机角色,基于Server 2008 R2
查看>>
Cisco IPSec_×××详细配置
查看>>
我的友情链接
查看>>
git 修改账号密码
查看>>
2017 未来架构师<设计思考> 翻转式课堂
查看>>
eNSP园区网络结构图配置
查看>>
Windows 8 数学输入板
查看>>
PHP网站开发工程师的职业发展规划与技能条件
查看>>
我的友情链接
查看>>
PXE和kickstart无人值守安装
查看>>
Activiti 5.18 的Mybatis版本问题
查看>>
安装vs2010的msdn
查看>>
我的友情链接
查看>>
ps处理icon,gif
查看>>
我的友情链接
查看>>
Java并发 Fork/Join框架
查看>>
jQuery如何访问Iframe中的元素
查看>>
btrfs文件系统的管理及使用
查看>>
快递电子面单打印接口对接demo-JAVA
查看>>
教你如何获得你的豆瓣FM加心歌曲
查看>>