[笔记] x86汇编语言:从实模式到保护模式之第一章 十六进制计数法

文章目录

  • 前言
  • [1.1 二进制计数法](#1.1 二进制计数法)
    • [1.1.1 关于二进制计数法](#1.1.1 关于二进制计数法)
    • [1.1.2 二进制到十进制的转换](#1.1.2 二进制到十进制的转换)
    • [1.1.3 十进制到二进制的转换](#1.1.3 十进制到二进制的转换)
  • [1.2 十六进制计数法](#1.2 十六进制计数法)
    • [1.2.1 十六进制计数法的原理](#1.2.1 十六进制计数法的原理)
    • [1.2.2 十六进制到十进制的转换](#1.2.2 十六进制到十进制的转换)
    • [1.2.3 十进制到十六进制的转换](#1.2.3 十进制到十六进制的转换)
    • [1.2.4 为什么需要十六进制](#1.2.4 为什么需要十六进制)
    • [1.2.5 使用Windows计算器方便你的学习过程](#1.2.5 使用Windows计算器方便你的学习过程)
  • 总结

前言

目标:

  • 掌握二进制,十六进制,十进制计数特点
  • 掌握二进制,十六进制,十进制计数 相互转化方法
  • 对于0~15之间的任何一个十进制数,能够立即说出它对应的二进制
    数和十六进制数。

1.1 二进制计数法

1.1.1 关于二进制计数法

  1. 在计算机里,二进制数字对应着高(1)、低电平(0)的组合
  2. 组成二进制数的每个数位,称为一个比特(bit),而一个二进制数也可
    以看成一个比特串。很明显,它的数值越大,这个比特串就越长,这
    是二进制计数法不好的一面。

1.1.2 二进制到十进制的转换

二进制和十进制都是进位计数法。进位计数法的一个特点是,符号的

值和它在这个数中所处的位置有关。比如,十进制数356,数字6处在

个位上,所以是"6个";5处在十位上,所以是"50";3处在百位

上,所以是"300",即 百位3、十位5、个位6=3×102+5×101+6×100=356

这就是说,由于所处的位置不同,每个数位都有一个不同的放大倍

数,这称为"权"。每个数位的权是这样计算的(这里仅讨论整

数):从右往左开始,以基数为底,指数从0开始递增的幂。正如上面

的公式所清楚表明的那样,"6"在最右边,所以它的权是以10为底、

指数为0的幂100;而3呢,它的权则是以10为底、指数为2的幂102。

上面的算式是把十进制数"翻译"成十进制数。从十进制数又算回到

十进制数,这看起来有些可笑,注意这个公式是可以推广的,可以用

它来将二进制数转换成十进制数。

简而言之, 例如10010B转为10进制:

复制代码
= 1 *2^(5-1)+ 0*2^(4-1) + 0*2^(3-1) + 1*2^(2-1) + 0*2^(1-1) 
= 1 * 16 + 0* 8 + 0*4 + 1*2+ 0 
= 18D

注意:数字+B意味着是二进制数(binary),同理,数字+D为十进制(decimal),数字+H是十六进制(hex),数字+O是八进制数(octal)

1.1.3 十进制到二进制的转换

简而言之,辗转除法,十进制数反复除以2,余数为每一位数,直到商为0.

原理就是

第一次除以2, 余数是这个是低位第一位数,

第二次除以2,实则已经是除以4,余数是这个低位第二位数,

第三次除以2,实则已经是除以8,余数是这个低位第三位数,

...

实则跟二进制转为十进制反过来而已。

1.2 十六进制计数法

1.2.1 十六进制计数法的原理

1.使用十六进制原因:二进制太长

2.十六进制,逢10变A,逢11变B,逢12变C,逢13变D,逢14变E,逢15变F,逢16进1。

1.2.2 十六进制到十进制的转换

要把一个十六进制数转换成我们熟悉的十进制数,可以采用和前面一

样的方法。只不过,在计算各个数位的权时,幂的底数是16。将十六

进制数125转换成十进制数的方法如下:

125H=1×162+2×161+5×160=293D

在上式中,125后面的"H"用于表明这是一个十六进制数,它是英语

单词Hexadecimal的首字母,这个单词的意思是十六进制。

1.2.3 十进制到十六进制的转换

类似十进制转二进制,辗转除法,不过是除以十六。

1.2.4 为什么需要十六进制

主要是:

  • 十六进制的每一位与二进制数每4比特为一组的对应关系,
    例如1H对应0001B,12H对应0001 0010B 可以极大缩短二进制的长度

1.2.5 使用Windows计算器方便你的学习过程

使用Windows计算器方便你的学习过程

总结

低进制转高进制,乘法指数累加。

高进制转低进制,辗转除法。

相关推荐
pigfu2 天前
go 通过汇编学习atomic原子操作原理
汇编·golang·atomic·缓存行·lock指令
小鹿撞出了脑震荡2 天前
汇编学习——iOS开发对arm64汇编的初步了解
汇编·学习·ios
染指11103 天前
21.第二阶段x64游戏实战-分析采集物偏移
汇编·游戏·反游戏外挂·游戏逆向·x64dbg·x64游戏
楠木s6 天前
常见汇编代码及其指定
java·汇编·数据库·安全·网络攻击模型·二进制·栈溢出
suyong_yq9 天前
调试Cortex-M85 MCU启动汇编和链接命令文件 - 解题一则
汇编·arm开发·嵌入式系统
染指111013 天前
18.第二阶段x64游戏实战-MFC列表框
汇编·c++·windows·游戏·游戏逆向·x64dbg
RaLi和夕16 天前
单片机学习笔记9.数码管
汇编·笔记·单片机·嵌入式硬件·学习
yu41062116 天前
GCC 内建函数汇编展开详解
汇编
手打猪大屁20 天前
ARM裸机开发——I.MX6U_汇编LED灯驱动
汇编·arm开发
zhmc21 天前
Keil A51汇编伪指令
汇编