怎么学习2进制

原问题:怎么学习2进制
分类:编程开发 > 最后更新时间:【2016-12-15 15:11:11】

最佳答案

可以通过分析熟悉的十进制来学习二进制,以致其他任意进制
我们熟悉的十进制是这样的:个位的基数是1,个位上出现的数字有几就代表这个数中包含几个1,而十位的基数是10,是个位(右边位)乘以10得到的(十进制),十位上出现的数字是几,则这个数中包含几个10,之后类推百位是十位乘以10,...,比如2015,包含2个1000,0个100,1个10,5个1,表达式为2*1000+0*100+1*10+5*1;那么小数呢,小数点后面第1位是0.1(即1/10),是个位除以10得到的,小数点后面第2位是前一位(左边位)除以10得到的,比如:3.14=3*1+1*1/10+4*1/100=3*1+1*0.1+4*0.01换句话说3.14包含3个1,1个0.1和4个0.01。
好相对着来学二进制,个位还是1,这个所有我们要学的进制都不会变,向左一位是个位乘以2等于2,再写一位等于前一位再乘以2;小数点每位是前一位(左边的)除以2。则二进制每位上的基数可以写出来:
168421.1/21/41/81/16或者写成168421.[0.5][0.25][0.125][0.0625]
有了以上这串数字,二进制数转成十进制就简单了:比如转换1010.0101成十进制,则我们写出二进制基数,小数点前后各写4位,从个位分别向前、向后写
8421.[0.5][0.25][0.125][0.0625]然后将要转换的数按照位对齐写在下面一行
1010.0101
然后上下做乘法,结果左右做加法(回忆一下十进制的算法)=1*8+0*4+1*2+0*1+0*0.5+1*0.25+0*0.125+1*0.0625=8+2+0.25+0.0625=10.3125
这个算法使用于所有进制噢,只要第1行的基数改写一下,乘以或除以2的地方改成乘以或除以n,n进制的数都能转换成十进制啦。这个应该不用记忆任何公式、不用进行指数运算,从个位1开始就都能笔算了。
再看反着转换,从十进制转二进制,举例:45.625转二进制,还是先写二进制基数,整数部分写到比45大为止,小数部分不用写
6432168421.
0101101.
现在开始计算:先转换整数部分
用45除以(整除)最高位的64得到商和余数=45/64=0[45],将商0写到64这位下面
用上步计算结果的余数继续计算=45/32=1[13],将商1写到32这位下面
继续,13/16=0[13],13/8=1[5],5/4=1[1],1/2=0[1],1/1=1[0],转换到余数等于0为止,如果还有整数位没有转换都填0;接着转换小数,用要转换的数的小数部分开始
0.625*2(二进制所以乘以2)=1.25,则我们的得数有了小数点后第1位,就是刚才这步运算的整数部分1[101101.1],接着用上步结果的小数部分继续乘以2=0.25*2=0.5[101101.10],0.5*2=1.0[101101.101],计算到结果小数部分为0时停止或者达到要求的位数时停止。
十进制45.625转换成二进制为101101.101
同样方法可转换十进制到任意n进制,只是将上述方法中乘以2、除以2的地方换成乘以n和除以n即可。

最佳答案由网友  上善若水666  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
4

分享到:

其他回答

其它网友回答:
在网上查找学习内容。

其它网友回答:
我觉得非常容易学。这个没有什么难的。你不要有思维定式,不要被十进制禁锢住思想就行了。就象163论坛上的美杂们,僵尸脑袋,思维僵化,认准了最腐朽的美国制度是完美的,无法接受科学思维

    推荐