-0.5 的定点表示是什么?

What is the fixed-point representation of -0.5?

提问人:mathematics-and-caffeine 提问时间:10/30/2023 更新时间:10/30/2023 访问量:50

问:

如果可能,从十进制系统中计算以下数字的定点表示。定点表示形式在小数点前应为三位数字,小数点后应为五位数字,并应使用 2 的补码。明智地圆润。

1: −4

2: −2.5

我感到困惑,原因如下。我们在讲座中谈到了不动点表示和二补码。但是我们从未谈论过将它们一起使用,这是本练习想要的。

所以我假设它的工作原理是这样的:小数点前面的三位数字使用二的补码来表示整数,而逗号后面没有小数点。

然后我们会得到:.和。-4 = 100.00000-2.5 = 110.10000

到目前为止,一切正常。但是这种方法存在问题。两者的补码只有一种表示。因此,我们可以毫无问题地表示数字,但是我们如何表示这样的数字呢?区间中的数字。我认为这是不可能的。00, 0.5, 0.25, ...-0.5, -0.25, ...(-1, 0)

那么我的错误在哪里呢?

计算 进制补 码定点

评论

1赞 grek40 10/30/2023
您能解释一下讲座中介绍的定点表示吗?我对你的方法有点困惑
0赞 John McFarlane 10/31/2023
在这种情况下,“来自十进制”是什么意思?我猜这并不意味着使用 base-10 定点。

答:

-1赞 user22771776 10/30/2023 #1

您的假设部分正确,但您确定的问题是一个合理的问题。Two 的补码表示通常用于有符号整数,它不直接处理 -1 和 0 之间的小数值或数字。

为了表示分数值,通常对整数部分使用带有 2 补码的定点表示。小数部分可以使用小数点右侧的二进制数字表示。例如,您可以将 -2.5 表示为 110.1,其中“110”是二进制的补码表示,“.1”表示二进制中的 0.5。

但是,您说得对,当您想要使用此方法表示介于 -1 和 0 之间的值(例如 -0.5 或 -0.25)时会出现问题。二的补码不太适合表示范围 (-1, 0) 中的分数,因为它无法区分此范围内接近零的正值和负值。我希望它能:)有所帮助。

评论

1赞 John McFarlane 10/31/2023
没有理由区别对待整数和小数部分。只需将实数缩放为 32。此外,是 -1.5,而不是 -2.5。正确答案是 or(假设顶部位为 -256、3 个积分和 5 个小数位)。110.11101.10000110110000 * 2^-5
1赞 Peter Mortensen 11/5/2023
@John McFarlane:它很可能是由 ChatGPT 生成的(或类似的东西——它的结构看起来像 LangChain)