第一章:学习前置知识
第一节:整数
为啥我们先要说数呢?因为计算机处理的都是数,所以,有必要先把数说一下。
十进制整数:
所谓十进制整数,就是我们平常用到的整数(还记得你很小时候,你妈妈在别人面前炫耀你能够从1数到100的高光时刻吗)。你妈妈告诉你,碰到九的时候,往前面加一,例如碰到29的时候,下一个就是30。聪明的孩子只要掌握这个规律,很快就能学会1-100的计数。
这里面蕴含的数学规律是啥,其实就是十进制,所谓十进制,就是逢十进一。个位碰到九的时候,下一个数就是十位加一,个位归零。在给十位加一的时候,如果十位是九,那么十位归零,百位加一。如果百位加一的时候,正好百位也是九,那么百位归零,千位加一。以此类推。
按照这样的规律计数,我们会发现,十位一个计数,相当于个位十个计数,百位一个计数相当于十位10个计数。现在我们知道,从右到左,我们不安个十百千万的形式说位数,我们按照位置来说位数,那么右边第一个就是0位,第二个是1位,第三个是2位,以此类推。这个时候,我么就可以得到下面的等式。
其实这个时候,十进制是个啥,我们已经搞清楚了,只不过上边这个算式有些无聊。(别急,数学上初看无聊的东西,最后都会排上大用场)。另外因为逢十进一的特点,十进制需要0-9十个数,来标识每个位上的数字。
十六进制:
同上,十六进制的话,十个数就不能满足每个位上的计数要求了,需要更多的符号,来标识每个位上的数字。我们对十进制进行扩展,增加六个个数数字,A, B, C, D, E, F,小写的也可以,A对应10,F对应15。
按照十进制的规律,一个十六进制的数可以是ABC。那么这个数字代表多少呢(我们平常使用数字,当然不会傻逼到非要告诉别人我们用的是十进制,还是十六进制,如果不指明,必然是十进制)。这个问题隐含的意思就是,十六进制的ABC代表了十进制的多少?ABC这个数,以我们现在的认知,一看就是十六进制的(因为十进制中没有ABC这几个数字,只有十六进制中有)。但是如果123现在问你是十进制的还是十六进制的,你可能会骂娘。为了不出现骂娘的情况,一般十六进制数的前面,会写上0x,或者0X。这样就清楚了。现在可以说0xABC的值是多少。多么简单的问题呀。
这时候你会发现,哦,这个公式还蛮好用哦。其实这个公式将一个十六进制的数转换成十进制的数。
二进制:
二进制数的计数法在这里不啰嗦了,大家肯定会了。二进制数和十进制数的转换关系现在就非常简单了。只不过二进制数以字母0B开头,例如0B10101,这个数的十进制值是十进制的21。
八进制:
八进制数到十进制数转换公式不用我说了。八进制数开始是一个0,例如0123,就是一个八进制数,它对应的十进制数是83。
十进制到十六进制的转换:
这个好像有点困难。我们知道十进制的16代表十六进制的0x10,256代表0x100,4096=0x1000。。。
这时候,公式派上用场了。如下:
其实我们要求的是每一位上的数字a0, a1, a2, a3 ...
我们只要不停的除16,就可以得到每位上的数了。
好了,方法我不说了,想必大家都会了。
其他的二进制,八进制到十进制的转换还用说吗?不用了吧。
小数
先说十进制小数,0.1就是十分之一,0.2就是十分之二,以此类推。小数点后第一位,记作b1,小数点后第二位记作b2,以此类推。公式如下:
是不是又是一个无聊的公式。
对于16进制,8进制,二进制的小数,公式分别如下:
有了以上公式,将2进制,8进制,16进制的小数转换成10进制小数的计算,不用说了,直接套公式。
而将10进制的小数转换成2进制,8进制,16进制的小数,方法如下(以16进制为例)
等式两边同时乘以16,那么a1就变成整数位,拿到a1以后,在对右侧剩余项再乘以16,是不是a2就变成整数位了。同样,拿掉a2,对剩余的继续执行乘法,继续拿掉整数位,直到没有项剩余了,就完事了。
剩下其他自己推断,熟练掌握。