二进制
二进制的小数位如何转为10进制,书上说乘二到小数位为零但是非5尾数的小数点比如:0.432永远乘不到小数尾数为0。请问如何计算?
根据IEEE标准,小数位是有限的,所以按照书上的方法求二进制没有问题,比如小数位占9位的话,那么当二进制数小数部分达到9为的时候,那么剩下的部分就通过四舍或五入的方法取舍。因此小数十有一定精度的,精度越高说明表示小数的位数越多。即进行你说的那种运算的次数越多。
所以计算机计算是有精度的,普通的使用不必关心,但科学计算就要特别考虑这个问题,差之毫厘,谬以千里。
这个不会考你,考的大都数是可以乘到尾数是O的
如果一个数字用二进制表示为: ABCDEF。GHIJ 则其十进制的值等于 A * 2^5 + B * 2^4 + C * 2^3 + D * 2^2 + E * 2^1 + F * 2^0 + G + 2^(-1) + H * 2^(-2) + I * 2^(-3) + J * 2^(-4) 依此类推。
如二进制10。1001等于1 * 2^1 + 1 * 2^(-1) + 1 * 2^(-4),即2 + 0。5 + 0。0625 = 2。5625。 可以看到,所有以二进制精确表达的小数的小数位必定以5结尾。 如果要把十进制纯小数R的值表达为二进制,则需要这样运算: 1、n = 1 2、如果R = 2^(-n),则R = R - 2^(-n),二进制表达式的小数点后第n位为1。
4、n自加1。 5、如果R != 0,回到2。 以0。432为例: 0。432 0。25 0。01 0。432 - 0。25 = 0。182 > 0。125 0。011 0。182 - 0。
125 = 0。057 0。03125 0。01101 0。057 - 0。03125 = 0。02575 > 0。015625 0。011011 0。02575 - 0。015625 = 0。010125 > 0。
0078125 0。0110111 0。010125 - 0。0078125 = 0。0023125 0。001953125 0。011011101 。。。 。
答:可以采用“乘2取整”法,口诀是“乘2取整,正序排列”,即用小数部分不断的×2如果大于1就在右边写1,小于1就写0,知道得出的书为0,比如十进制0.24换算成二进...详情>>
答:QBasic简单一点详情>>