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

总结

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

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

相关推荐
渡我白衣18 分钟前
C++可变参数队列与压栈顺序:从模板语法到汇编调用约定的深度解析
c语言·汇编·c++·人工智能·windows·深度学习·硬件架构
旧梦吟21 小时前
脚本语言 汇编
汇编
iCxhust1 天前
8088单板机C语言汇编混合编程实验方法与步骤
c语言·汇编·单片机·嵌入式硬件·微机原理
元亓亓亓1 天前
考研408--组成原理--day8--汇编指令&不同语句的机器级表示
开发语言·汇编·c#
缘友一世2 天前
计算系统安全速成之机器级编程(数组和指针)【3】
汇编·计算机组成原理·数组和指针
切糕师学AI2 天前
ARM 汇编指令:LDR
汇编·arm开发
询问QQ688238863 天前
探索多虚拟电厂联合调度优化模型:集中式算法的实践
汇编
草莓熊Lotso3 天前
C++11 核心特性实战:列表初始化 + 右值引用与移动语义(附完整代码)
java·服务器·开发语言·汇编·c++·人工智能·经验分享
西西弗Sisyphus4 天前
读第三方程序的变量的原理
汇编
西西弗Sisyphus4 天前
一个程序点击事件的汇编指令与解析 - 目标变量的真实虚拟地址 = 逐级解引用并叠加偏移后的结果
汇编