[笔记] 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计算器方便你的学习过程

总结

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

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

相关推荐
Ronin-Lotus11 天前
微处理器原理与应用篇---ARM常见汇编指令
汇编·arm开发·微处理原理与应用
永夜的黎明14 天前
【二进制安全作业】250616课上作业1-栈溢出漏洞利用
c语言·汇编·安全
Geometry Fu16 天前
物联网控制技术 知识点总结 第三章 汇编语言 第四章 C51语言
汇编·物联网·51单片机
半桔16 天前
【Linux手册】进程的状态:从创建到消亡的“生命百态”
linux·运维·服务器·汇编·深度学习·面试
一条叫做nemo的鱼19 天前
从汇编的角度揭开C++ this指针的神秘面纱(下)
java·汇编·c++·函数调用·参数传递
一条叫做nemo的鱼20 天前
从汇编的角度揭开C++ this指针的神秘面纱(上)
汇编·c++·算法·函数调用·this指针·参数传递
qwertyuiop_i22 天前
汇编(函数调用)
汇编·windows·函数调用
不忘不弃22 天前
由汇编代码确定switch语句
汇编
南玖yy22 天前
深入理解 x86 汇编中的符号扩展指令:从 CBW 到 CDQ 的全解析
开发语言·汇编·arm开发·后端·架构·策略模式
iCxhust22 天前
汇编字符串比较函数
c语言·开发语言·汇编·单片机·嵌入式硬件