0

我正在努力学习 C,现在我是一个花车。我知道所有值在不同的机器上都有不同的大小。但我正在努力学习这个概念。

假设一个浮点数保存在 4 个字节中。我读到第一位是符号位,它决定数字是正数还是负数。然后接下来的 7 位是指数,其余(23 位)是尾数。可能是这样的:1 010 1001 0000 0000 1011 1001 0000 111

但这如何转化为浮点数?我可以阅读二进制文件,但我看不到它背后的公式:)。有人可以向我解释一下,或者它是如何工作的吗?

4

2 回答 2

2

这是我几年前写的。
我认为它应该可以帮助您了解浮点数的表示方式:

http://www.eosgarden.com/en/articles/float/

基本上,归一化数字的公式是: -1^S * 1.M * 2^( E - 127 )其中S是符号,M是尾数,E是指数。但一切都在上一个链接中详细解释。

于 2013-01-09T15:55:18.880 回答
1

指数中有8位:seee eeee emmm mmmm mmmm mmmm mmmm mmmm

公式为:(-1)^s * 1.M * 2^(E - 127)

我用大 M 和 E 分别代表所有的 m 和 e 位。M部分是二进制,E部分是十进制。

于 2013-01-09T16:00:52.710 回答