Answers:
一个二进制编辑器编辑一个文件作为二进制文件。
一个二进制文件是不是文本文件的计算机文件。术语“二进制文件”通常用作含义“非文本文件”的术语,并且通常被认为是字节序列。...二进制文件通常包含旨在被解释为文本字符以外的内容的字节。
甲十六进制编辑器是一种类型的二进制编辑器,其中数据被表示为十六进制。
甲十六进制编辑器(或二进制文件编辑器或字节编辑)是一种类型的计算机程序,其允许在构成计算机文件中的基本的二进制数据的操纵。名称“十六进制”来自“十六进制”:以16为基数的数字的标准表示形式。
二进制编辑器显示(二进制)
00000000 | 11111011 11111011 11111011 11111011 11110101 11111011 11111011 11111011
00001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00010000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00011000 | 11110101 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00100000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00101000 | 11111011 11111011 11101111 11111011 11111011 11111011 11111011 11111011
00110000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00111000 | 11111011 11111011 11111011 11101111 11111011 11111011 11111011 11111011
01000000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01010000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01011000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01100000 | 11111011 11111011 11111011 11111011 11111011 11101111 11111011 11111011
01101000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
二进制编辑器显示(十六进制)
00 | fb fb fb fb f5 fb fb fb fb fb fb fb fb fb fb fb
10 | fb fb fb fb fb fb fb fb f5 fb fb fb fb fb fb fb
20 | fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb fb
30 | fb fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb
40 | fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
50 | ef fb fb fb fb fb fb fb ef fb fb fb fb fb fb fb
60 | fb fb fb fb fb ef fb fb fb fb fb fb fb fb fb fb
确实,二进制编辑器应该允许您处理二进制字节,但是如您所见,以2为底的数字太小,无法给出紧凑的数字。
一般来说,二进制编辑器中的“ 二进制 ” 不是指基数二,它实际上是“ 文本编辑器 ” 的反义词。
区别在于文本编辑器旨在显示文本,因此不需要安全地处理非打印字符,换行符,控制字符,无效的utf-8代码单元等。
打开文件并立即保存文件仅需更改(由于编辑器内部转换,失败)。
另一方面,二进制编辑器不要尝试赋予数据任何语义,而要让用户安全地将其作为字节/位/字流来处理。
完美的二进制编辑器会知道每种可能的二进制格式,然后让您对其进行编辑,但是由于每个人都可以创建自己的二进制格式,并且由于它们经常更改,因此尝试支持所有格式都是徒劳的。
编辑者可以做的最好的事情就是显示字节本身,由于已经讨论过,基数16的属性非常方便!
此外,有经验的用户可以在阅读bin时将其智力转换为hex。
设置/获取以十六进制写入的字节中的一点实际上绝对不需要比写入bin中的字节更多的工作。
老实说,我发现十六进制比二进制更容易阅读。
摘要:
十六进制编辑器用于通过以十六进制格式显示二进制内容并允许更改这些十六进制数字来直接编辑二进制文件。
笔记:
十六进制编辑器允许编辑文件的原始数据内容,而不是其他尝试解释数据的程序。
十六进制编辑器,也称为二进制编辑器或字节编辑器。
称它们为Binary Editors或Byte Editors是不正确的,因为这些编辑器正在更改十六进制数字,而不是二进制数字或字节(当然,如果保存了文件,则基础二进制数字和字节将更改)
为什么我们编辑二进制使用十六进制?
通过以十六进制形式显示数据并更改十六进制值,可以更轻松地直接查看或编辑/修改二进制文件。
表示二进制数的一种便捷方式是使用十六进制。
过去,计算机是用汇编语言编程的,其中的代码是使用处理器指令和元语句(称为指令,伪指令和伪操作),注释和数据编写的。
使用汇编程序将代码转换为二进制。然后可以将二进制代码加载到进程中并执行。
如果没有源代码,使用编辑器以十六进制而不是二进制显示程序直接修改程序就容易了。
二进制代码在转换为十六进制时更容易被人类阅读。
例如,哪对数字更容易记住或向他人读出?
10110000 01100001
要么
B0 61
每个十六进制数字代表四个二进制数字(位)。一个十六进制数字代表一个半字节,它是一个八位位组或字节(8位)的一半。
例如,字节值的范围可以从0到255(十进制),但是可以更方便地表示为00到FF范围内的两个十六进制数字。
十六进制也通常用于表示计算机内存地址。
当今,绝大多数计算机上的文件都是8位字节。通常,这是直接编辑文件时使用的抽象方法。
当然,有机会实际编辑单个数据位,但并不经常。比如设置7位公共位级别的操作是容易做到的十六进制反正- 1000 0000 BASE2 = 80 base16,所以如果一个十六进制值是在80个BASE2第7位是明确的,加入8个base16将设置它。
十六进制与此类活动更紧密相关的其他原因:
在视觉上扫描已知值时,十六进制值更容易识别。例如,20 base16 = 32(这是一个ASCII空间),但是在其他大量转储值中,同样的值0010 0000 base2很难识别。
您实际上需要定期使用此功能的旧系统可能具有有限的屏幕空间(例如40列)。Apple IIe ROM监视器是一个很好的例子,它可以将内存以十六进制形式转储到40列集成视频中,并且在80x24屏幕上将值扩展为二进制将使您很快就没空间了。对于这些旧系统,编写例程以将输入的ASCII转换回正确的值也更加容易。重要的是要考虑4K RAM的大量内存,而系统可能只有ROM。
“ hex”一词听起来更好,更短并且更易于键入。
我将按字面值回答您的问题。
首先,要澄清一下。您的意思是,当然是十六进制编辑器。十六进制表示6,十进制表示10,因此十六进制表示16。Bi表示2。正如您所说的,这是两个不同的基数,即基数16和基数2,这意味着需要16个占位符元素来定义一个十六进制数,而只需要2个元素来定义一个二进制数。
你之前这么说,
If you actually search for "binary editor" on Google, you get hex editors.
现在,对于您的问题,
Why is that?
这是文字部分。Google会返回大多数人认为满意的搜索结果。他们的机器学习算法在字符串“编辑器”的上下文中将字符串“十六进制”和“十六进制”与“二进制”相关联。由于大多数用户在搜索“二进制”“编辑器”后都对“十六进制”“编辑器”感到满意,因此我们得到了这一点。否则它没有任何意义。
What is the connection?
从字面上看,没有任何东西,因为Google没有任何意义。Google不知道二进制和十六进制之间的区别,它只能列出人们使用搜索引擎的方式。
如果您要在十六进制和二进制之间建立真正的联系,请回到上面的说明,一个十六进制元素编码16种可能性或4位,而二进制元素编码2种可能性或1位。要在一个字节中编码8位信息,我们需要2个十六进制元素或8个二进制元素。因此,您可以看到二进制或十六进制编辑器可以互换使用,因为它们表示相同的数据,只是在不同的视图中。
它们之所以称为“二进制”,是因为它们使您可以更改单个位。
默认情况下,UI通常使用十六进制格式,因为它更加方便-例如ffffe0007d13e650
,在屏幕上占用的空间少于1111111111111111111000000000000001111101000100111110011001010000
。(这是来自调试问题的实际地址,而不是虚构的示例。)在十六进制代码中更容易“看到”诸如ascii或Unicode字符之类的内容。
但是,如果您确实希望它们显示,则大多数将切换为显示二进制位。
(为什么我们要在大路边开车,却又在大路边停车?这只是单词。英语常常很奇怪。)