前言

每一个文件,在计算机中都是以二进制来保存的,只是在显示时可以通过一些查看软件来查看,比如文档软件可以查看文字,比如*.txt文件保存在内存中是二进制内容,Notepad++软件读取二进制,并以文字的方式显示出来。再比如jpg图片,文件中也是二进制,一些看图软件读取二进制后以图片的方式显示结果给我们看。有时候,我们希望直接查看二进制,当然直接看二进制会很痛苦,因为一长串的010100101,谁也看不懂,所以一般会以16进制的方式来查看这些二进制。这里讲解三款软件:Notepad++、Sublime Text、UltraEdit,主推UltraEdit,因为它的二进制查看效果最好,有行索引也有列索引。

Notepad++

UltraEdit可以以二进制方式查看,但是这个软件是收费的。Notepad++是免费的,但是默认是不能查看文件二进制的,需要安装一个插件,如下:

Android 文件 读取 二进制 安卓打开二进制文件_Notepad查看二进制


Android 文件 读取 二进制 安卓打开二进制文件_Android 文件 读取 二进制_02


如上图,在插件管理中搜索“HEX”,按“下一个”可以快速定位到“HEX-Editor”插件的位置,然后勾选它,然后点击“安装”按钮。安装完成后,先打开一个文件,然后选择“View in HEX”,就可以以十六进制的方式查看该文件了:

Android 文件 读取 二进制 安卓打开二进制文件_Notepad plus_03

Android 文件 读取 二进制 安卓打开二进制文件_Notepad plus++_04


因为Notepad++是一个文本软件,所以无论你打开什么文件,默认它都是读取二进制,然后以字符的方式显示出来,如果这些二进制不是文本内容,则显示出来的时候就会是一些乱码。

当然,你也可以打开一个文本文件,然后选择“View in HEX”后也会以16进制的方式查看,再次选择这个命令可以恢复到以文本方式查看。

Sublime Text

感觉Notepad ++显示的十六进制比较松散,我知道字体可以调整,行间矩应该也可以调整,但是懒得调了,我看UltraEdit的显示效果就挺好,后来想到Linux下别人常用Sublime Text,于是安装了这个,效果也很好。官方:https://www.sublimetext.com/download

安装后默认是英文的,中文和查看十六进制都需要安装插件来完成。

按Ctrl + Shift + P,在输出的界面中输入:install,如下:

Android 文件 读取 二进制 安卓打开二进制文件_Notepad plus++_05


选择Install Package来安装插件,点击这个命令后它会加载一会,然后加载出插件列表,然后我们搜索中文插件,输入:chinese,如下:

Android 文件 读取 二进制 安卓打开二进制文件_Notepad++_06


选择“ChineseLocalizations”,安装后之后它会自己重启,重启后就是中文的了。同样的方式安装“Hex Viewer”插件,安装后之后,打开需要查看二进制的文件,然后点击如下菜单命令即可查看二进制:

Android 文件 读取 二进制 安卓打开二进制文件_Notepad查看二进制_07


Android 文件 读取 二进制 安卓打开二进制文件_Notepad plus++_08


不得不说,Sublime Text的显示效果是非常棒的!

UltraEdit

不得不说,UltraEdit的十六进制是最好用的,它不用装插件,是自带十六进制模式的,但是它软件收费啊!(可以找破解版^_^),当前最新版本截图如下:

Android 文件 读取 二进制 安卓打开二进制文件_Android 文件 读取 二进制_09


如上图打开的是一张bmp图片,当我们打开非文本的文件时,它默认就会以16进制打开,如果你是打开的文本文件,默认显示文本内容,也可以在编辑选项卡中点击“十六进制模式”进行切换(或者按Ctrl + H)。

UltraEdit比较好的是它的换行是每16个字节换一行,正好符合16进制的大小,而且它除了有行首字节的索引外还有列索引,找位置就非常方便,比如我要找0x36位置的byte数据,如上图,先找到行首索引30,再从列索引那找6即可,而且软件下方的状态栏上也显示了光标所在位置的索引为36H,而且还显示了对应的十进制为54,可惜的是,它没有显示这个位置的byte对应的10进制值是多少。