C语言中的float存储问题,请尽量详细解答,谢谢

2025-02-22 13:24:03
推荐回答(3个)
回答1:

1:假设那个3是-3,你存储负数时必须在首位一般要加一个符号,那么二进制-3=1000 0011,而1000 0011=131,电脑就会出错。所以电脑一般采用的是浮点数的补码进行运算,至于补码你可以看微机原理与接口技术。
2:不理解你的问题
3:举个例子八位小数0.1234567x,如果x<5时就是0.1234567,当x》5时就是0.1234568了,所以第七位不能保证。
4:如果你运算的是a+b+c和a+c+b那就会相等,而加了括号后优先级变化了,系统会先把括号里的计算结果处理保存起来在和括号外边的运算,这样由于精度问题就会有误差。

回答2:

这个你不用搞懂 这个叫偏移码 就是为了电脑方便计算 统一位数 就是加上一个2^n,这个n代表一个字节的位数 因为计算机都是二进制的 而且寄存器都是八位 所以都加上2的8次方

回答3:

规划vjmkvyhgvkjbnmv和vkjbnbmvhg