菜鸟开始学习汇编--序章
来源:互联网 发布:使命召唤 ol命运数据 编辑:程序博客网 时间:2024/06/07 13:44
内容有三点:
1.十进制
2.二进制
3.十六进制
第一点,十进制的问题,为了更好的理解二进制和十六进制。我们先尝试在纸上画一条箭头指向左侧的直线,在直线的下方(注意是下方!!!)从右到左每隔一小段距离分别写上10的0次方,10的1次方,10的2次方,按着顺序写下去。当然了,不用写那么多。
第二点,由于是十进制,因此直线的上方可以写0~9,当然,写的时候应该写在10的几次方的正上方对齐。
举个例子,比如说437这个数,4就应该写在10的2次方上面,3写在10的1次方上面,7写在10的0次方上面,
所以437本质上是等于4 * 10的2次方 + 3 * 10的1次方 + 7 * 10的0次方。
到这里我们就知道二进制跟十六进制应该怎么写了。
2.二进制的问题。
通过上面对十进制的描述,很显然的我们也应该画一条跟上述一样的直线,这个时候因为是二进制了,所以我们在直线下方写的就应该是2的0次方,2的1次方,依次写下去。
那么,二进制跟十进制不一样,允许的写的数字只有0和1,所以我们在直线的上方只能写0跟1.
计算方法就跟十进制的一样了。
3.十六进制
这里就不再继续重复了。因为也是一样的。
不过需要知道的就是十六进制是从0~9 然后A ~F。
那么下面还有的问题就是进制与进制之间的转换。
1.十进制与二进制之间的转换
十进制转化为二进制其实非常简单,只需要不断的除以2。那么这里我们说明一下为什么要除以2呢。
原因就在于任意正整数除以2得到的数要么是1要么是0,这是符合我们二进制的规定的。因此我们只需要不断的除以2就可以从十进制转化为二进制了。
那么怎么除呢,余数又要放在那里呢
举个例子,比如说19这个十进制数。
第一步,19除以2,2放在19的左边,余数放在19的右边。因为19/2 = 9余1,所以9写在19的下面。
第二步,不断重复上述过程,直到1为止。
第三部,从下往上读取余数,得到的数即为二进制数。
2.十进制与十六进制之间的转换
跟十进制和二进制的转换一样,只是改为除以16了,要注意的就是当出现无法再除以16的数的时候,如果这个数大于等于10小于等于15,要记得转换为字母。
3.十六进制与二进制之间的转换
我们一开始可能会想到先转换为十进制,再转换为二进制或十六进制,然而这样的方法使得效率有点底下。因此我们再这里采用一种快速转换的方法。
这种快速转换的方法仅适用于数字不大的数!!!!
举个例子,现在有一个十六进制数2B,我们把这个数拆开变成2和B,那么2在二进制里是0010,B是11,可以拆为8 + 2 + 1,也就是2的3次方+2的1次方+2的0次方,
所以是1011,将这两个数拼起来就变成了00101011,这样我们就将一个十六进制的数转换成了二进制数。感觉应该还是挺快的。
那么我们讲一下规律,总体上是这样的
第一步,先将一个十六进制数拆开,然后分别找出每个数字对应的二进制数,然后将其拼起来就可以了。
这里用四个位来表示,比如上面的0010和1011
那么再举个例子加深一下,比如5F,拆开变成5和F,5 = 4 + 1 = 0100 + 0001 = 0101, F = 15 = 8 + 4 + 2 + 1 = 1000 + 100 + 10 + 1 = 1111.
上面的8 4 2 1都是分别对应直线下方的2的几次方几次方的,所以我们才将一个数拆开来看看可以等于什么加什么。
最后,由于本人能力有限,只能描述到这里,也许不太严谨,如有缺点,请多多指点,谢谢。
- 菜鸟开始学习汇编--序章
- 菜鸟学习的开始
- 开始学习汇编
- 开始学习win32汇编
- 开始学习汇编了
- 开始学习ARM汇编
- 开始学习MIPS汇编
- 开始学习汇编+PE
- 学习!从汇编开始
- 菜鸟反汇编学习前言
- 菜鸟要开始学习了
- 开始学习C#和汇编
- 开始学习汇编,日记于此
- 从0x7c00开始的16位汇编(菜鸟文章)
- 学习汇编的菜鸟的笔记
- 从一个菜鸟开始学习机器学习
- Android学习历程-从菜鸟开始
- PHP菜鸟如何开始学习PHP语言
- CodeForces
- python基础学习四——控制结构与异常
- char* char[] 区别
- iOS 键盘框架IQKeyboardManager使用
- 使用js实现读取csv文件内容解析到html页面中
- 菜鸟开始学习汇编--序章
- 【English】八月英语总结
- S5PV210的地址映射
- Intelligent Parking Building
- 对于银行股的一些思考
- 布局中实现三角形的几种方法
- mvn deploy将开发后的代码发布到远程仓库
- java IO-文件流-文件内容复制
- 17年中总结