2 xueyefengxiang xueyefengxiang 于 2016.02.07 00:21 提问

关于文件的编码,存储的形式

不知道用“文件的编码”来描述这个问题是不是准确,我对计算机术语的了解还很浅显。
详细地说,我想求教的,是文件(各种类型的文件)在计算机中是以什么样的形式存储的,是用二进制码呢,还是用十六进制码呢(提到十六进制码是因为曾近用过一个叫做Notepad++的软件),还是其他的形式呢?
而我的目的是尝试手写一张BMP的图片文件,虽然我在网上查到了BMP文件的编码格式,但我却不懂应该将数据写在哪里,是写在一个记事本里面,写好后再更改拓展名呢?还是怎样写呢?
好心的前辈们,请不要告诉我直接的答案,如果能推荐我几本书,让我系统地自学一下有关的知识,哪怕是告诉我涉及这方面知识的专业术语,我自己去查找相关的资料也好。
真心的感激!

3个回答

caozhy
caozhy   Ds   Rxr 2016.02.07 00:55
已采纳

无论什么文件,计算机都是用2进制存储的。
但是为了让人便于阅读,我们用16进制表示,因为这种方式下4个二进制对应一个16进制字符,便于阅读。
在文件中有一种特殊的形式,叫文本文件(区别于一般的二进制文件),这种文件可以用记事本和任何文本编辑器打开。它使用一种文本编码,比如ascii,gb2312、unicode、utf等。组成的文件的内容都是人类可以阅读的文本。
bmp文件就是一种非文本文件,它只能用ultraedit winhex之类的打开。因为它们支持精确读写一个字节。而记事本没有这个功能,你也没法输入非打印的字符。

推荐书:《编码的奥秘》
http://vdisk.weibo.com/s/BZE2czijFfNzb

caozhy
caozhy 回复雪夜枫香: 如果问题解决,麻烦点下采纳,谢谢
2 年多之前 回复
xueyefengxiang
xueyefengxiang 谢谢您!
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.07 00:56
lm_whales
lm_whales   Rxr 2016.02.07 22:17

手动输入非文本字符,可以用数字键,不过我相信,没有人有这个耐心
输入一个,那怕是10*10 的bmp

lm_whales
lm_whales 回复caozhy: 是啊,不过DOS下的一些编辑工具是没有问题的。
2 年多之前 回复
caozhy
caozhy 回复lm_whales: 即便有这个耐心,保存的数据仍然可能出错。因为编辑器会使用相应的文本编码来保存。有时候它根本不识别ascii以外的字符。
2 年多之前 回复
lm_whales
lm_whales ALT+数字键
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ini 文件另存为 UTF-8 将无法使用 GetPrivateProfileX 系列读取
ini 文件另存为 UTF-8 将无法使用 GetPrivateProfileX 系列读取 在C# 下无法读取, 只有设置成 Unicode 或者 ansi 才可以正常读取
图片的读取与存储(二进制形式)
很多人知道怎么样去设置一个Image控件的ImageURL指向一个图片地址链接然后显示出图片 但是如果要将大量的图片存储并读取呢?类似与很多网站的注册功能以及相册展示功能 写了这个小列子 数据库 设计很简单就一个简单的表 两个字段 id和Image类型的content字段(用来存放图片用二进制读取的内容)还有一个存储过程(我喜欢用存储过程)数据库里面有内容(那个女的不是我.)打开项目时请将数据库附加到SQL server 2005. 项目的功能大家还是下下来自己看吧 代码都封装了 希望这个小列子对你现在和以后要做的项目有帮助吧.
文本文件和二进制文件在存储时的区别
1、二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式。 2、文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,也就是说存放的是数据的终端形式。 我们有必要把需要存储的数据分为字符数据和非字符数据两类。当你有数据要存储的时候.首先要考虑的问题并不是你要选择用二进制文件还是文本文件来进行存储,而是首先得考虑你要存储的数据是
哈夫曼树的编码与译码(包含文件输入输出)
用DEVC++编译实现。一个完整的系统应具有以下功能: (1)I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 (2)E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 (3)D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 (4)P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 (5)T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
行政区划编码
中国行政区划的编码和地点映射,以json形式存储,方便使用
UTF-8编码格式与Unicode编码格式学习
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。 UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码
字符编码格式的显示与存储示例分析
汉字“严”的unicode是十六进制数4E25,转换成二进制数足足有15位(100111000100101),也就是说这个符号的表示至少需要2个字节。 “严”的UTF-8编码是“11100100 10111000 10100101”,这是保存在计算机中的实际数据,转换成十六进制就是E4B8A5,转成十六进制的目的为了便于阅读。 1)ANSI:文件的编码就是两个字节“D1 CF”
关于Oracle数据库各种存储形式的概述
关于Oracle数据库各种存储形式的概述
把内存中的字符串以文本文件方式写入硬盘
方法一:以字节流的形式写入 String src = "Wellcom to China!欢迎来到中国!"; String file = "F:\\Hello.txt"; InputStream in = new StringBufferInputStream(src); OutputStream out = new FileOutputStream(file); byte[] b = new
图书馆图书基本信息管理软件
采用结构体数组或文件形式存储每本书的信息,每本书应包含如下几方面的信息:主编、出版社、出版年、版次、ISBN书号、书名、定价、拥有本数、借出本数、现余本数。软件由主函数(含欢迎界面);退出程序模块;(一般用户) 3个主要功能模块:(1)借出功能(被借之书“借出本数”增1,“现余本数”减1);(2)归还功能;(3)查找功能(需指定书的某项信息,查找该书目前借出、余存信息)以及(管理员用户)3个主要功能模块(1)添加书目;(2)修改书目;(3)查看书库信息组成。