计算机⼆进制数精度,⼩数计算精度丢失问题之前菜——了解
计算机⼆进制
⼆进制表⽰法。。。。
这是也是基础知识啦:
别急我们⼀点⼀点的讲解。正整数转⼆进制,负整数转⼆进制,⼩数转⼆进制
正整数转⼆进制:  正整数转成⼆进制。要点⼀定⼀定要记住哈:除⼆取余,然后倒序排列,⾼位补零。
21 /2    -------------------------------余  1
10/2    -------------------------------余  0
5/2      ------------------------------- 余  1
2/2      --------------------------------余  0
1/2    ---------------------------------余 1
记住,到着排序  10101  ,验证下转成⼗进制: 1×2的4次⽅+1×2的2次⽅+1×2的0次⽅=16+4+1=21。正确。
计算机⼀般是8 位 16位  32位  64 位的,所以不够位⾼位补零。8位表⽰法:00010101
负整数转⼆进制:先是将对应的正整数转换成⼆进制后,对⼆进制取反,然后对结果再加⼀。
取 -21 演⽰,看⼝诀,
21 的⼆进制表⽰为: 10101
取反:  01010
加⼀ : 01011
⼩数转换为⼆进制的⽅法:对⼩数点以后的数乘以2,有⼀个结果吧,取结果的整数部分(不是1就是0喽),然后再⽤⼩数部分再乘以2,再取结果的整数部分……以此类推,直到⼩数部分为0或者位数已经够了就OK了。
演⽰: 0.125 ×2=0.25 0
0.25×2=0.5 0
0.5×2=1.0 (1)
即 0.125的⼆进制表⽰为⼩数部分为0.001
记住,乘到⼩数为0。排序:正序。
验证: 0.001        0×2的0次⽅+0×2的-1次⽅+0×2的-2次⽅+0×2的-3次⽅=1/8=0.125.正确。
现在来说明0.1转⼆进制不能表⽰的原因啦:
0.1×2=0.2 0
0.2×2=0.4 0
0.4×2=0.8 0
0.8×2=1.6 (1)
0.6×2=1.2 (1)
0.2×2=0.4 0二进制转换方法的口诀
.....
是⽆限循环的。所以。。。。你懂的!
for(double i=0;i!=10;i+=0.1)
{
}
有可能是死循环。⽤浮点数循环需要注意啦。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。