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

总结

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

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

相关推荐
Jacen.L18 小时前
逆向工程开篇(连载中)
汇编
薛定谔的猫_C8T61 天前
程序人生-Hello’s P2P
c语言·汇编·程序人生·shell·二进制·计算机系统·hello
God_archer1 天前
程序人生-hello’s P2P
linux·c语言·汇编·程序人生
南玖yy2 天前
x86 汇编逻辑运算全解析:从【位操作】到实际应用(AND,OR,NOT,XOR,TEST)
开发语言·汇编·arm开发·后端·架构·策略模式
南玖yy2 天前
深入理解 x86 汇编中的重复前缀:REP、REPZ/REPE、REPNZ/REPNE(进阶详解版)
开发语言·网络·汇编·后端·算法·bochs
Jacen.L2 天前
四、函数调用包含单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型
汇编
网安INF2 天前
深入理解汇编语言中的顺序与分支结构
开发语言·汇编·编程
染指11104 天前
34.x64汇编写法(一)
汇编·x64汇编
廖致君5 天前
打打基础 | 从翻转链表到寄存器、汇编与内存
汇编·数据结构·链表
iCxhust5 天前
8088 单板机 汇编 NMI 中断程序示例 (脱离 DOS 环境)
c语言·开发语言·汇编·单片机·嵌入式硬件·mcu