濯茶的前端思考 2014-12-02 14:05 采纳率: 41.2%
浏览 1888
已采纳

关于C语言无符号规格化的一个理解

看深入理解计算机系统里面。关于规格化的一段描述:
......也就是说,指数的值是E=e-Bias,其中e是无符号数,其位表示为ek-1···e1e0,而Bias是一个
等于2k-1 -1(单精度是127,双精度是1023)的偏置值。....

我知道C语言单精度的指数位是8位,取值范围是-126到127.但是我对E=e-Bias不理解。这里的e代表的是什么?本人小白求解释。。

  • 写回答

2条回答

  • Coursera 2014-12-02 16:06
    关注

    e就是你的指数值,给个例子

    0100 0010 1**111 0110 0000 0000 0000 0000**

    第一个粗体的0是符号位,后面的10000101 = 133(十进制),这个是个单精度数,bias=127,所以指数是E - bias = 133 - 127 = 6
    第二个粗体长串111 0110 0000 0000 0000 0000是你的小数部分.111011
    这个数字的F = .111011 + 1 = 1.111011
    这个的值 = 1.111011 x 2^6 = 1111011 = 123

    这里之所以采用bias是因为指数从0~255,如何表示负数(小于1)的数,采用的是e - bias。(e大于127,是大于1,e小于127是小于1)。这样既可以表示大的数,也可以表示非常小的数(2的-128次方)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog