1.二进制转十进制,十六进制与二进制转换。
二进制整数的每个位都是2的幂次方,最低位是2的0次方,最高位是2的(N-1)次方。从二进制的第一位开始,此位乘其N-1次方,再把每位的结果相加,即得到十进制的数。由于二进制需要的位数太大,阅读不方便,因此汇编和调试器常用十六进制表示二进制。转换方法,从最低位开始四位一组,不足四位前面补0,然后进行查表,得到的结果按位数从左到右排列即可。最重要的一点是,一位十六进制的数可以表示四位二进制数。表格如下:
2.数据宽度,字节序和ASCII码
计算机中存储的基本单位是字节,每个字节八个位(字节是基本单位,位是最小单位。)字节byte占8位,字word占16位,双字dword占32位,八字节qword占64位。 表示范围:占N字节即可表示2的8N次方个数,由于计算机从零开始,所以范围为0到2的8N次方减一。字节序:通常数值在内存中的存储方式有两种,大尾方式和小尾方式。eg:有
一个十六进制的数0x01020304,地址值有00000000(1,2,3)H.大尾方式就是内存高位地址存放数据低位字节顺序,内存低位地址存放数据高位字节数据。小尾方式正好相反。Windows系统兼容的cpu为小尾存储方式,Unix兼容的cpu多为大尾方式。网络中字节的传输也是大尾存储方式。
字符集的作用是将字符映射为整数,ASCII字符集中,每个字符由唯一的7位整数表示。常用:
- LF 10 0AH 换行
- CR 13 0DH 回车
- SP 32 20H 空格
- 0-9 48-57 30H-39H 数字
- A-Z 65-90 41H-5AH 大写字母
- a-z 97-122 61H-7AH 小写字母