好多年前学过十进制转二进制的笔算过程,不过一直都没机会用上,很快就忘记了,最近因工作原因有几次需要做进制转换的计算,懒得上网查就根据记忆中模糊的印象瞎推导,搞着搞着就搞出了这样的推导方式,如图:
最右边的是需要转换的十进制数123、8,每一个左边的数是右边数除以2后得到的正整数,每一个下边的数其实不用太关注,但是偏偏又不能轻易忽略(因为当横线上面的数除以2之后,除得尽的话就是0,除不尽的话就是1),直到左边为1.
所以这个计算过程就是
1、以最右边横线上方的十进制数值a1为起点;
2、若a1除以2能除尽的话,则a1下边的数值a2为0,否则a2为1;
3、a1左边a3等于(a1-a2)/2;
4、若此时a3小于1,则计算结束(结果为最左边的数和所有下边的数逐个拼起来),否则以此时的a3作为新的a1套入步骤1234中。
呵呵,刚写到这里就忽然发现假如将上面步骤1234中的2换成了其他 - _ - b......貌似也可以呵。呵呵!嗝!
过几天我发个进制转换代码出来。
对比之后发现,虽然跟学校老师教的差别不大,怎么说呢,起码不需要将结果反过来串起,好歹也算是自己的一份小成绩,发文记录一下。