回想以前学汇编的时候不知道为什么总是过一段时间就忘记进制转换的方法
大概是学得不知所以然吧
最近回顾一下这些知识,并思考了一下原理

二进制转十进制
例子:
二进制数1001B=1*2^0 + 0*2^1 + 0*2^2  + 1*2^3=1 + 8 =9

原理:
一个十进制数632可以表示成
=600    + 30     + 2
=6*10^2 + 3*10^1 + 2*10^0
=632
同理一个二进制数11011可以表示成
 10000+ 1000+  000   + 10    +1
=1*2^4+ 1*2^3+ 0*2^2 + 1*2^1 +1*2^0
=16   + 8    + 0     + 2     +1
=27

十进制转二进制
A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (后面的和不正是化十进制的过程吗)
现在假设该数未化为二进制,除以基数2得
A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2
这时候由于a(2^0)/2这条式不可能被整除,而其他项式又肯定是能被整除的。所以a(2^0)必须被余下来,也就是a必须被余下来
(因为a和a(2^0)总是相等的),那么这样就可以从余数a窥知第一个二进制位了
商得:
b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以除以基数2余下了b,以此类推。
当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba

技术
©2019-2020 Toolsou All rights reserved,
JVM概述VUE+Canvas 实现桌面弹球消砖块小游戏javascript事件(零基础详解)Pikachu漏洞练习平台明解c/c++程序的内存模型--内存四区python实现vlookup_干货一:怎么在python里面实现vlookupswift 5.0 创建一个获取验证码的按钮,实现倒计时效果首期500亿,成立新部门,腾讯准备做什么?关于蓝桥杯大赛,你应该了解的那些事!解决Selenium ActionChains拖动元素无效