二进制 与 十进制 互转

==============================================================================
二进制转十进制:
方法:“按权展开求和”
  例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10
  =(8+0+2+1+0+0.25)10
  =(11.25)10
  规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十
  分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
  注意:不是任何一个十进制小数都能转换成有限位的二进制数。


1010.101B=2^3+2^1+2^-1+2^-3=8+2+0.5+0.125=10.625


================================================================================
十进制转二进制:整数部分:采用"除2取余,逆序排列"法。
                         小数部分:采用"乘2取整,顺序排列"法。


例:235.725的小数部分取出,


即:0.725,将其乘以进制数二进制就乘以2后得到1.45,取其整数部分1为二进制小数的第一项(十分位),
在将小数部分0.45乘2得0.9,取其整数部分为二进制小数的第二位(百分位)0,
在将其小数部分0.9乘2,得1.8,取其整数部分为二进制小数的第三位(千分位)1,
取其小数部分0.8再乘2……以此类推,直到值为0 或者 形成循环小数则停止 或者 达到所要求的精度为止。




例如:十进制 8.325 转为二进制_____?___。


整数部分:


8/2 = 4 余0
4/2 = 2 余0 
2/2 = 1 余0
1/2 = 0 余1  // 直到商为零
逆序排列 故二进制为 1000


小数部分:
规则是:乘2取整
0.325*2= 0.65
0.65*2 = 1.3
0.3*2  = 0.6
0.6*2  = 1.2  // ------
0.2*2  = 0.4
0.4*2  = 0.8
0.8*2  = 1.6
0.6*2  = 1.2 // -----
0.2*2  = 0.4
0.4*2  = 0.8
0.8*2  = 1.6
……
继续循环(1001)
顺序排列 故二进制为0101001……(+1001循环)


答案为:1000.0101001……(+1001循环)



原文地址:https://www.cnblogs.com/riasky/p/3429304.html