菜鸟开始学习汇编--序章

来源:互联网 发布:使命召唤 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的几次方几次方的,所以我们才将一个数拆开来看看可以等于什么加什么。


最后,由于本人能力有限,只能描述到这里,也许不太严谨,如有缺点,请多多指点,谢谢。

原创粉丝点击