怎么样算一个数的二进制?比如说,36的二进制是多少?怎么算的?
首先思考一下是十进制,比如365=3*10^2+6*10^1+5*10^0
这样你会发现一个规律,十进制转换=当前位的数*10^(位数-1)之和
这样你再去理解二进制,其实二进制就是将10这个量值换成2,去计算得出最终的结果,为什么称为二进制,当然是由于 每个位的数最大只能是1,逢二进一,就像十进制,逢十进一。
那么我们就来分析一下36怎么转换为二进制?
首先算一下2的1-10次方为多少
2^0=1 2^1=2 2^2=4 2^3=8 2^4=16 2^5=32
2^6=64 2^7=128 2^8=256 2^9=512 2^10=1024
第二步
36=32+4=2^5*1+2^4*0+2^3*0+2^2*1+2^1*0+2^0*0
所以转化为2进制 就是100100
第三步
运用更好的方法获取二进制
将值除以2,记下余数。
只要所得的商不为0,继续将最新的商除以2,并记下余数。
商为0时,将余数按照记录的顺序从下往上依次排列,即可得到该数的二进制。
这样就获取48的二进制位110000
48=32+16=2^5*1+2^4*1+2^3*0+2^2*0+2^1*0+2^0*0
先说结果,我们再来推导。36 的二进制 是 100100
说到进制转化,先理解一下进制,所谓X进制,就是说每满X就往高位进一位。而我们要处理二进制,那么也就是满2进一,进制内单个数字最大就只能为1。之所以说这个,是因为要引入另一个概念,也就是余数,严格的说是求模运算。比如36%10 = 3 余 6。36是10进制数,这里对其进行了对进制的求模运算,得到了个位数6,继续对剩下的3进行求模得到3也就是十位数。
同理,任意进制的转化其实都可以用求模运算来处理。这里求36的二进制X
36 % 2 = 18 ... 0 // 0
18 % 2 = 9 ... 0 // 00
9 % 2 = 4 ... 1 // 100
4 % 2 = 2 ... 0 // 0100
2 % 2 = 1 ... 0 // 00100
1 % 2 = 0 ... 1 // 100100
注意我们是从最低位开始得到结果的
所以进制之间转化其实就这么简单
说到进制转化,先理解一下进制,所谓X进制,就是说每满X就往高位进一位。而我们要处理二进制,那么也就是满2进一,进制内单个数字最大就只能为1。之所以说这个,是因为要引入另一个概念,也就是余数,严格的说是求模运算。比如36%10 = 3 余 6。36是10进制数,这里对其进行了对进制的求模运算,得到了个位数6,继续对剩下的3进行求模得到3也就是十位数。
同理,任意进制的转化其实都可以用求模运算来处理。这里求36的二进制X
36 % 2 = 18 ... 0 // 可以理解为X的个位为0, 所以X应该等于 ?????????0
18 % 2 = 9 ... 0 // ???????00
9 % 2 = 4 ... 1 // ???????100
4 % 2 = 2 ... 0 // ??????0100
2 % 2 = 1 ... 0 // ??????00100
1 % 2 = 0 ... 1 // 100100
注意我们是从最低位开始得到结果的
所以进制之间转化其实就这么简单
十进制逢十进一,二进制逢二进一
36 除以2 得18(商数)-余数是0;18/2=9,余数是0;9/2=4,余数是1;4/2=0,余数是0;2/2=1,余数是0。
36 的二进制是100100;
100100 = 从极右边的0 是2的零次方,最左边的是2的5次方。
所以,2的5次方加2的2次方得36!
36/2=18...0
18/2=9...0
9/2=4...1
4/2=2...0
2/2=1...0
1/2=0...1
那么36的二进制就是100100