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

总结

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

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

相关推荐
物随心转8 小时前
汇编的伪指令
汇编·arm开发
Moonnnn.14 小时前
51单片机——程序执行过程(手工汇编)
汇编·笔记·嵌入式硬件·学习·51单片机
却道天凉_好个秋16 小时前
c++ 嵌入汇编的方式实现int型自增
开发语言·汇编·c++
白晨并不是很能熬夜18 小时前
【JVM】字节码指令集
java·开发语言·汇编·jvm·数据结构·后端·javac
Moonnnn.1 天前
51单片机——汇编工程建立、仿真、调试全过程
汇编·笔记·嵌入式硬件·学习·51单片机
禾仔仔2 天前
RISC-V汇编学习(三)—— RV指令集
汇编·risc-v·指令集
leluckys2 天前
swift -(5) 汇编分析结构体、类的内存布局
汇编
cheungxiongwei.com3 天前
ESP32-P4 支持哪些 RISC-V 汇编指令?
汇编·risc-v
charlie1145141915 天前
从0开始的操作系统手搓教程21:进程子系统的一个核心功能——简单的进程切换
汇编·学习·操作系统·线程·进程·手搓教程
凉、介5 天前
ARM 架构下 cache 一致性问题整理
linux·汇编·arm开发·学习·缓存·架构