logo资料库

十进制小数和二进制小数相互转换(C++版).pdf

第1页 / 共1页
资料共1页,全文预览结束
【酷町堂】 关于十进制小数-->二进制小数和二进制小数-->十进制小数 这里补充一点。 整数部分的转换和之前的我们所学的是一样的。 比如: 12.385(10 进制)转成 2 进制, 整数部分 12 还是变成 1100 1010.011(2 进制)转成 10 进制, 整数部分还是 变成 10 一. 十进制小数-->二进制小数 比如:10.375 整数部分:10-->1010 小数部分:0.375 由于是要转成二进制 每次就把小数部分乘以 2 取每次得到的整数部分 0.375*2 = 0.75 整数部分是 0 那就得到 0 小数部分是 0.75 =1.5 整数部分是 1 那就得到 1 小数部分是 0.5 0.75*2 0.5*2 =1.0 到此就结束了 那这个小数部分 0.375(10 进制)转成 2 进制 就得到了 0.011 和整数部分合在一起,就是 1010.011 整数部分是 1 那就得到 1 小数部分是 0.0 二. 二进制小数-->十进制小数 比如:1100.001 这个就比较简单 以小数点为界 1 1 0 0. 0 0 1 对应 2^3 2^2 2^1 2^0 2^(-1) 2^(-2) 2^(-3) 前面第一个 1 对应的是 2^3 次方 ,第二个 1 对应的是 2^2 次方,其它情况以此类推。 2^(-1) 是 2 的-1 次方 就相当于 1/(2^1) 2^(-2) 是 2 的-2 次方 其它情况以此类推 就相当于 1/(2^2) 即 1/2 即 1/4 那这样的话,整数部分(10 进制): 1*8+1*4+1*2+1*1=12 小数部分(10 进制):0*(1/2)+ 0*(1/4)+1*(1/8)=1/8=0.125 所以 1100.001(2 进制)就转成了 12.125(10 进制)
分享到:
收藏