如何访问文件的二进制格式?

时间:2011-05-22 03:35:46

标签: architecture binary organization binary-data

我刚刚完成了计算机组织课程,其中我们了解到所有文件和数据都以0和1(位)的形式存储。但是,我很好奇程序员如何实际访问文件的二进制表示?也就是说,如何查看(或访问)代表我计算机上任何文件的0和1?

2 个答案:

答案 0 :(得分:1)

虽然在最基本的级别上,所有内容都存储为位,但是现在大多数处理器只允许您访问字节(8位块)。但是,从一个字节开始,您可以确定某个位是否为1。

要获取字节pos的位byte(从最低有效位,0到最高有效位,7)的位,可以使用此代码(在C中,这里,但它可能在许多语言中都有效):

// bit here is likely 32 bits, but it will only contain 0 or 1,
// based on the value of the bit at pos in byte
int bit=(byte>>pos)&1;

答案 1 :(得分:0)

你当然可以逐个字符地读取文件,假设 Java有或者将字符视为无符号你将字节转换为整数 - 那么每个字节的十进制值将是特定字节。然后,您可以将其基础更改为可表示的二进制形式:

String byte = Integer.toBinaryString(integer);

这应该在Java包java.langtoBinaryString)中,您可以循环到文件末尾,使用您希望的任何流字节包装器。

修改

提供有关程序员如何读取二进制格式的问题的见解(尽管在低级别上)

我不确定如何在Java中执行此操作,尽管在C中您将创建一个结构(变量容器)并直接读取每个成员的字节,您可以预先假定文件结构由定义的文件类型(即读取4个字节,生成浮点数,读取n个字节作为矢量数组)