MONTH / August, 2008

The IEEE 754 Floating Point Format

最近碰到用十六进制数表示浮点小数的问题,本科没学好,现在是补习时间。

FP32(单精度浮点数)

  • 第 31 bit 为符号位,0 表示正数,反之为负数,其读数值用 s 表示;
  • 第 30~23 bit 共 8 bits 为指数,其读数值用 e 表示;
  • 第 22~0 bit 共 23 bits 为分数,视为二进制纯小数,假定该小数的十进制值为 f;
 S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
31 30    23 22                    0

v = (-1)s × 2e-127 × 1.f

十进制浮点小数转 IEEE 754 格式的方法,以 −118.625 为例:

  • 由于是负数,得 s = 1;
  • 去符号后,将小数转为二进制数表示(整数部分除以 2 取整,小数部分乘以 2 取整)得 1110110.101;
  • 将该二进制小数正规化,即将小数点向左(为正)或向右(为负)移动,直至形成 1.f 格式的数,得1.110110101×26,补齐 23 bit 从而得到 f = 11011010100000000000000;移动的位数加 127 即为 e,得 e = 133 = 10000101;
  • 最后得到 IEEE 754 格式:1 10000101 11011010100000000000000 = 0xC2ED4000。

CONTINUE READING »


关掉 WordPress 下的 directory listing

刚才看到这篇文章,检查了下我的 WordPress,发现也有这个问题,赶紧修改了 WP 根目录下的 .htaccess 文件,在文件最后加上如下语句:

# Prevents directory listing
Options -Indexes

重新上传,果然 Ok,所有目录访问自动转到 WP 的 404 页面,比最笨的到每个文件夹下建一个空的 index.html 的办法好使多了。