我是怎样理解10进制转2进制后的余数倒序写?
在将10进制的数转换为2进制时,用到了“除2求余法”(不知道这方法叫什么,姑且给它命个名吧)。这里理解起来有一个难处,就是最后得到的余数为什么要倒序写出来。
先说说官方的转换步骤吧:
1、将该值除以2,记下余数。
2、只要所得商不为0,就继续把新的商除以2,并记下余数。
3、商为0时,将余数按所记录的顺序从右到左排列,得出结果。
(先假定大家都会从2进制转换为10进制了,这个…真的靠自己了)
下面我以十进制13转换为二进制为例,用简单粗暴的言语解释一下吧:
A.13/2=6….1
B.6/2=3…0
C.3/2=1…1
D.1/2=0….1
那么二进制的结果应该是1101.
在A步,除以2求出的整数十进制数的余数正是转换为二进制数后的最低位,因为它不需要乘以二来恢复成十进制数;B步除二的余数同理则是下一位置的二进制数,这里余数是0,要通过乘2来恢复成十进制,因为之前除了一次嘛;每一次的余数都被抛弃在二进制数的某一位置中,而决定它乘以2的几次方就取决于它是除了几次2后的余数。所以,慢慢地想下来,最后的余数恢复成十进制数所需要乘的2指数不是最大吗?这样一来,它就是二进制的最高位。所以假如我们按习惯来从左往右写的话(而不是官方步骤),就应该先写最后的余数,逐步写下去。
表达能力有限,但我就是这么理解的,不喜请喷~~
还没人赞这篇日记