首页
社区
课程
招聘
[原创]C 语言编写二进制/十六进制编辑器
发表于: 2016-7-3 16:48 4977

[原创]C 语言编写二进制/十六进制编辑器

2016-7-3 16:48
4977
> 用 C 语言编写二进制/十六进制编辑器的方法、思路以及原理。

---------------

## 基础知识

计算机中表示信息的最小单位是 bit(位),而用来存储数据的最小单位是 Byte(字节)。因为存储数据的最小单位是字节,所以文件长度不存在 4bit 或者 1bit 这种表示。

## 编写十六进制编辑器

### 数据可视化

每次从文件读取 8bit 数据存储在 unsigned char 类型中,用 printf() 的 %x 参数打印;如果你想打印数据的二进制形式,只需对 unsigned char 类型数据进行八、十或十六进制转二进制字符串在打印即可。

### 数据编辑

表面上我们的数据存储在 unsigned char 类型中,编辑的最小单位因该是 unsigned char,如果我们想修改其中的任意一位(bit),该如何操作呢?我们举个例子:

二进制 0000 0000 的高位设置为 1 该怎么办?
二进制 0000 0000 的十六进制表示为 0;
二进制 1000 0000 的十六进制表示为 80;
所以只要将十六进制 80 存入文件,高位便设置为了 1。

## 解析文件差异对比工具

文件存储的最小单位是字节(Byte),不存在 4bit 或者 1bit 这种表示。我们可以每次从文件读取 8bit 数据存储在 unsigned char 类型中,然后再相互比较两个数据即可。

更多内容请点击:b2bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3&6W2P5s2c8Y4L8$3c8Q4x3X3g2U0L8$3#2Q4x3V1k6@1K9s2u0W2j5h3c8Q4x3X3b7K6y4o6q4Q4x3X3b7I4i4K6u0V1x3g2)9J5k6h3S2@1L8h3H3`.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回