十六进制编辑器(Hex Editor),为什么叫十六进制编辑器呢?十六进制编辑器,明明编辑的是二进制内容呀。

学习 He Haoyuan 4年前 (2020-09-15) 4878次浏览 0个评论

十六进制编辑器(Hex Editor),为什么叫十六进制编辑器呢?十六进制编辑器,明明编辑的是二进制内容呀。

问:十六进制编辑器(Hex Editor),为什么叫十六进制编辑器呢?十六进制编辑器,明明编辑的是二进制内容呀。
答:因为这是人为规定的。

要说起十六进制编辑器(Hex Editor),首先要声明一点,本文所指的十六进制编辑器和Hex Editor,并不是指的某一款特定的软件,而是指的具有以十六进制显示文件二进制编码的一种编辑器。例如:UltraEdit,WinHEX,010edit。甚至,更广义的DiskGenius,也可以被称作十六进制编辑器。

十六进制编辑器,之所以被称作十六进制编辑器,主要有以下特点:

1、能够以十六进制数字0-F,表示二进制数字0和1。
2、以1个字节(8bit)为单位,对二进制的内容进行分割。
3、能够在文本编辑器的左侧或右侧,以ASCII字符为文本,显示二进制的实际文本内容。

通过查阅资料(资料日后补上,昨天晚上查的。网页已经关了。)可以发现。如果需要对文件以二进制数字的格式进行显示和编辑,人类是很难能够正确阅读的。而以十六进制数字的格式,以1个字节为单位,来展示二进制的内容,则会很容易显示、阅读和编辑二进制的内容。

例如:
00000000(B) = 00(H)
11111111(B) = FF(H)

00000000 11111111 00001111(B)
00 FF 0F(H)

而根据维基百科(WikiPedia)关于二进制和十六进制的介绍,最初的PC机,普遍使用的是ASCII编码。ASCII编码1个字节的长度,是1个字节。于是,人们为了方便以文字的方式书写和阅读,便设计出了以1个ASCII字符(长度为1个字节,8位二进制编码)和一个英文空格为分隔,在PC机当中展示了出来。

那为什么1个字节的二进制数字内容,会以2位十六进制数来展示呢?

因为,1个字节一共可以表示00000000(B)=0(D)到11111111(B)=255(D)总计256种(2^8=256)可能的二进制内容。二进制的最小数字00000000和最大数字11111111可以转换为十进制的最小数字0和最大数字255,也可以转换为十六进制的最小数字00和最大数字FF。根据本片文章上文介绍的内容,人们为了方便阅读,不直接在PC机的显示器上,直接展示二进制的数字。而是使用2位十六字节的数字,展示在PC机的显示器上。这样,1个字节只需要2位0-F的数字,即可表示这段文件的内容。所以,1个字节的二进制数字内容,会以2位十六进制数来展示。

综上所述,十六进制编辑器,虽然编辑的是十六进制的数字。但是,由于人为规定了ASCII编码,又因为人们为了方便阅读二进制的内容,十六进制编辑器,其实质上编辑的还是二进制的内容。只不过,是以2位十六进制数字来表示而已了。

当然了,如果你看着十六进制的数字不顺眼,也完全可以转换为二进制数字或八进制、十六进制,甚至是ASCII所显示的文字内容(ASCII文本模式),来进行显示和编辑二进制的内容,大部分的十六进制编辑器,都是支持转换显示二进制内容的格式的。

最后,你说:“我不干,我要以BMP或JPEG的像素点为单位,显示和编辑二进制内容。”当然没有人拦着你。~~但是,如果你做出了这么一个编辑器,真的会有人用吗?(PC-3000和Flash Extractor,好像还真是这么做的...)


何浩源的博客 , 何浩源版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:十六进制编辑器(Hex Editor),为什么叫十六进制编辑器呢?十六进制编辑器,明明编辑的是二进制内容呀。
喜欢 (1)
发表我的评论
取消评论

已设置自动反垃圾评论保护检测,无需输入验证码。 *

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址