xiaohuanghuang_ 2021-05-28 21:40 采纳率: 71%
浏览 15
已结题

为什么double尾数占位53?它不应该是8的倍数吗?

  • 写回答

1条回答 默认 最新

  • _L.Y.H._ 2023-03-25 22:32
    关注

    53位bit

    原因尾数有个默认位为1. 52位+ 1位就是53了

    实验

    背景知识

    2^52 = 4503599627370496

    将第一位设置成6 (小于2^53次方)

    double d = 6503599627370496L;
    for (int i = 0; i < 100; i++) {
        d++;
        System.out.println((long)d);
    }
    
    

    结果正常+1

    将第一位设置成9 (大于2^53次方)

    double d = 6503599627370496L;
    for (int i = 0; i < 100; i++) {
        d++;
        System.out.println((long)d);
    }
    
    

    结果始终为 9503599627370496
    ————————————————
    参考自:https://blog.csdn.net/oneFaceThick/article/details/123202316

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 专家已采纳回答 8月18日

悬赏问题

  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?