16进制数与二进制数、10进制数的换算
16进制数与二进制数、10进制数的换算 计算机文献中经常使用16进制数是因为16进制数和二进制数的转换非常方便,其规则是:4位二进制数对应一位16进制数。附
一列出所有4位二进制数对应的16进制数和10
进制数。
附表一:
二进制 16进制 10进制
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 A 10
1011 B 11
1100 C 12
1101 D 13
1110 E 14
1111 F 15
例如,8位二进制数10110101转换16进制时,由上表可查出1011对应B,0101对应
5,因此转换的结果是16进制数B5。
16进制转换为10进制则只需计算加权和。设某个16进制数为
hhhhh,其中诸inn,110
为0..F之间的某个16进制数,表示0..15的数值,则对应的10进制数为
nn,1hhhh,,,,,,,161616 nn,110
例如,16进制数AE,转换为10进制数即为。 101614174,,,
附表二是常见的2的整数次幂及其对应16进制数和10进制数,在计算编码时经常会用
到这些常数。
附表二:
2的n次方 10进制 16进制
n=1 2 2
n=2 4 4
n=3 8 8
n=4 16 10
n=5 32 20
n=6 64 40
n=7 128 80
n=8 256 100
n=9 512 200
n=10 1024 400
n=16 65536 10000
附录2:查看字符编码的方法
Windows的“记事本”可用来输入文字,并保存为纯文本文件。保存时可选择字符编码,
其选择项及含意是:
ANSI:文本中的英文字符用ASCII,汉字用GBK
Unicode: 所有字符都用UTF-16编码,字节顺序为低位在前,自动加BOM
Unicode big endian:所有字符都用UTF-16编码,字节顺序为高位在前,自动加BOM
UTF-8:所有字符都用UTF-8编码,自动加BOM
然后我们可以利用一些软件检查文件中的编码。例如利用Ultra Edit,这个软件可以查看文件中的二进制内容(用16进制数表示),还可以直接编辑文件中的二进制数。
也可以利用Windows自带的一个DOS程序Debug,以下是操作方法,假定你的文件存
放路径及文件名为d:\code\test.txt:
, 启动DOS窗口
, 在DOS窗口中输入cd\
, 在DOS窗口中输入debug
, debug启动后,在光标位置输入n d:\code\test.txt。这个命令的作用是指定文件名,
注意这是DOS程序,文件名和
名不能用汉字,且不能超过8个字符。
, 输入L 3000:0。这个命令的作用是将指定的文件装入内存,3000:0是内存地址。
, 输入D 3000:0。这个命令的作用是显示内存中的数据,你将看到类似如下的数据:
3000:0000 C2 EB B0 A1 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
3000:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-
其中左边一栏是内存地址,中间一栏是文件的二进制数据,用16进制表示,每两个16
进制数字对应一个字节的数据。右边一栏显示这些数据对应的字符,但只能显示ASCII
字符,无法显示的字符用“.”代替。
, 最后,输入q,这个命令将退出程序,返回DOS窗口。
, 输入exit关闭窗口。
注意GBK是两字节的编码,Windows存储GBK编码的字节次序是高位在前、低位在
后。UTF-16编码的文件,开头有两字节的BOM可说明字节次序,UTF-8没有字节次序的问题,但文件开头有3个字节的BOM。
debug也可以修改内存数据并存盘。这个程序本来是用来调试汇编程序的,我们只是利
用其部分功能。