美文网首页
32位浮点数16777216.0f 加 1 还是 1677721

32位浮点数16777216.0f 加 1 还是 1677721

作者: 863cda997e42 | 来源:发表于2021-09-23 10:26 被阅读0次

32位浮点数16777216.0f 加 1 为什么不是 16777217.0f ?

16777216二进制表示:
<1 00000000 00000000 00000000>
16777217二进制表示:
<1 00000000 00000000 00000001>
32位浮点数其中1位表示符号位,8位表示指数位,23位表示小数位。
加上隐含的1位小数位,隐含的这位总是1,并不存储,所以一共可以表示24位小数位。
16777217一共是25位,就需要进行取舍。这里是舍去末尾的1。
16777216.0f的二进制表示:
<01001011 10000000 00000000 00000000>
16777217.0f的二进制表示同样是:
<01001011 10000000 00000000 00000000>舍去了末尾的1。
再比如:16777220.0f的二进制表示:
<01001011 10000000 00000000 00000010>
16777221.0f的二进制表示同样也是:
<01001011 10000000 00000000 00000010>
以上是舍弃末尾1的情况。
同样也有进位的情况。
比如:16777218.0f 加 1 结果是 16777220.0f。
16777219的二进制表示:
<1 00000000 00000000 00000011>
末尾的1向前进位:
<1 00000000 00000000 00000100>
末尾的1是否进位,要看它的前一位是1还是0。
如果1的前一位是0,则不进位,如果1的前一位是1,则进位。
这就是所谓的中值取偶原则。

相关文章

  • 32位浮点数16777216.0f 加 1 还是 1677721

    32位浮点数16777216.0f 加 1 为什么不是 16777217.0f ? 16777216二进制表示:<...

  • 运算符

    1、数字运算符 +加- 减 * 乘/ 除 ----结果是浮点数// 商 ----- 整数% 求...

  • Java中的Infinity和NaN

    1、i == i + 1一个数字永远不会等于它自己加1?Java 强制要求使用IEEE 754 浮点数算术运算[I...

  • 6-0. 混合类型数据格式化输入

    本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。 输入格...

  • 2、字符串

    上集回顾:整数(int)和浮点数(float)加(+)、减(-)、乘(*)、除(/)、取整(//)、取余(%)变量...

  • 3_浮点数的秘密

    关键词:内存中的浮点数、浮点数存储示例、十进制浮点数的内存表示、 float类型的不精确示例 1. 内存中的浮点数...

  • 浮点数相加

    题目 问:输入结果是什么? 解析:此题有三处考点1.浮点数0.1和0.2相加,得出结果是 0.3000000000...

  • JavaScript 中的数字 Number 易于忽略点

    JavaScript 中的数字 Number 易于忽略点 一、浮点数 1. 浮点数的存储 保存浮点数值需要的内存空...

  • python基础

    一、字符类型 1、浮点数float(1)打印指定位数的浮点数print("%.xf" % num):其中,x表示要...

  • python中的数据类型和变量

    浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1....

网友评论

      本文标题:32位浮点数16777216.0f 加 1 还是 1677721

      本文链接:https://www.haomeiwen.com/subject/inwngltx.html