用户:
嗯哼君 渠源查看:6 回复:5 评论:6 创建时间:2018-10-14T13:50:29
嗯哼,我就系你们滴嗯哼君啦~~~
最近嗯哼君好不容易可以上会codemao,于是多发些教程证明我还活着先
今天嗯哼君就来给你们讲讲二、十进制之间的转换,仔细听好啦~~~
先来讲十进制转二进制,主要是求余数。
那什么是余数呢?还记得我们在小学二年级时一开始学的除法吗?
当时我们不会求小数点后面的,于是当整数部分除不尽的时候就直接把剩下的数列出来。
比如:3/2=1······1
43/2=21······1
你可能简单的不会求,这有个嗯哼君自己总结的公式,实在不行就套公式吧······
余数=除数-被除数*商
PS:其中商为整数
知道了余数是什么,我们就可以根据余数求二进制了。
母鸡你发现了没,若除数为2余数则必为1或0,二进制就是根据这个得来的。
整数的十转二:将一个数不断除以二直到该数为0,将余数倒过来排列就是二进制了。
具体到底该怎么求呢?我们来实际演练一下。
比如你要跟一个人表白,但是又羞于启齿,就可以用二进制来说“5201314”
5201314/2=2600657······0
2600657/2=1300328······1
1300328/2=6501喵·······0
6501喵/2=325082······0
325082/2=162541······0
162541/2=81270······1
81270/2=40635······0
40635/2=20317······1
20317/2=10158······1
10158/2=5079·······0
5079/2=2539······1
2539/2=1269······1
1269/2=634······1
634/2=317······0
317/2=158······1
158/2=79······0
79/2=39······1
39/2=19······1
19/2=9······1
9/2=4······1
4/2=2······0
2/2=1······0
2/1=0······1
没错,经过x遍演算我们终于将这么大一个数除到了0,接着我们把余数倒过来排列,就成了这个样子:
10011110101110110100010
没错,这就是5201314的二进制啦
学会了十转二,我们就要学二转十啦
整数的二转十:将每一位数乘2再乘以位数-1次方的和
我们继续用这个10011110101110110100010来演示一下,省的你被别人表白了还不知道
我们将0先划去(0乘以任何数还是0),只记1和位数。
在这团数字中,一共有13个1,位数分别是2、6、8、9、11、12、13、15、17、18、19、20与23。
因为位数还要减一,所以于是我们得出式子:2^1+2^5+2^7+2^8+2^10+2^11+2^12+2^14+2^16+2^17+2^18+2^19+2^22
是不是头都要炸了呢?没关系,再炸之前算出来先~~~
这个若位数太大的话可以用计算机按个几分钟,但是答案我们之前已经求出来了,是——5201314
但是之前我们学都是整数啊,小数咋整呢?
对于小数的十转二我们可以用“乘2取整,顺序排列”法
小数的十转二:将小数点后面的部分乘二,取整数后循环直到小数点后面为0,与前面的相加。
我们还是来具体实践一下。
我们想将520与1314用小数点隔开,具体步骤如下:
520/2=260······0
260/2=130······0
······
2/2=1······0
1/2=0······1
0.1314*2=0.2628(进整0)
0.2628*2=0.5259(进整0)
0.5259*2=1.0518(进整1)
0.0518*2=0.1039(去整1进整0)
······
(之后的步骤太过麻烦,处于版面考虑省略)
之后将各数相加即可。
另外,由于计算机内部表示数字的方式,所以可能会有所出入,但无妨大碍。
经过嗯哼君の幸苦努力,将最近值算了出来:1000001000.001000011010001101101110001011101011000111
那小数点的二转十呢?
小数的二转十:与整数的二转十一个样,只不过小数点的数序是反着算的(从左向右)也不用差一,且乘方是负的。
比如(这次来个简单点的吧):
1101.01=2^0+2^2+2^3+2^-2=13.25
好了,关于二进制与十进制的转换就到这里了,下期我们会讲求和公式(应该吧),我们下期再见!