+ -
当前位置:首页 → 问答吧 → 关于二进制文件的一些问题

关于二进制文件的一些问题

时间:2011-08-26

来源:互联网

1、比如说你输入2,那么文本文件存储的是32h(2的十六进制ascii码),但二进制文件存的是10(二进制)。
问题:文件在计算机内存中不都是以二进制的数字来存储的吗?可是为什么文本文件存储的是2的十六进制ascii码?
2、数字11,如果按照文本文件保存,需要保存2个1,字节序列为:0000000100000001
如果按二进制保存,只需要保存为:000001011。
问题:为什么按二进制保存就成了000001011?
二进制数据的读取困惑了我好久,还请高手们帮帮忙啊

作者: vbtimer   发布时间: 2011-08-26

哈哈。

你说的没错,在计算机的内存中,都是二进制码。但是,系统显示给你的,必须是你看得懂的文字或图形。

当你在文本编辑界面中键入 2 的时候,系统就从键码把输入数据“翻译”成了 ASCII 码。当显示的时候,系统又根据 ASCII 码调用字库,显示出字型。

实际上,你向二进制文件保存 2 时,也要看你当时定义的数据类型,保存的可能是 
00000010, 
0000000000000010,或
00000000000000000000000000000010
而不会仅仅是 10。

至于 11,在文本文件中是 31h 31h;在二进制文件中是 0Bh (00001011)。

说穿了,就是内存中的数字按什么格式(类型)来解释的问题。

作者: of123   发布时间: 2011-08-26

说白了,这就是有多种数据类型的原因,打印出来的东西,比如2,对于我们来说,就是一个东西,而在电脑里,字符串类型"2",与整形2是不一样的,计算机要分别它们,所以采用不同的编码方式。

作者: zzyong00   发布时间: 2011-08-26

引用楼主 vbtimer 的回复:
1、比如说你输入2,那么文本文件存储的是32h(2的十六进制ascii码),但二进制文件存的是10(二进制)。
问题:文件在计算机内存中不都是以二进制的数字来存储的吗?可是为什么文本文件存储的是2的十六进制ascii码?
2、数字11,如果按照文本文件保存,需要保存2个1,字节序列为:0000000100000001
如果按二进制保存,只需要保存为:000001011。
问题:为什么按二进制保存就成了000001011?
二进制数据的读取困惑了我好久,还请高手们帮帮忙啊


LZ的思路有些问题.
1)文本文件中大多为可显示的ASCII单双字节字符
2)数字11按文本储存二进制是00110001 00110001,不是LZ以为的0000000100000001

作者: zdingyun   发布时间: 2011-08-26

热门下载

更多