【发布时间】:2015-09-30 20:19:34
【问题描述】:
我有一个浮点数的一小部分(例如,-10.5 中的 5 个)。这是一个字符,因为我从输入中提取了它。如何将该字符转换为该浮点数的二进制小数部分? (我正在构建一个浮点输入-> 32 位 IEEE784 中的十六进制输出,我已经提取了尾数的符号、指数和整数部分的二进制表示。)
我一直在考虑实现将分数乘以 2 并取余数,然后重复直到填满尾数的算法,但我不允许在赋值中使用任何浮点运算。
示例: 用户输入 -10.5。程序需要取数字的小数部分(即5),并将其转换为二进制格式(即1(.1))
编辑:我受到 16 位寄存器大小的限制,因此我需要一个解决方案来对 > 2^16-1 的数字进行操作。
【问题讨论】:
-
问题不是很清楚。请展示一些典型的输入,它们是如何获得的,以及每种情况下所需的输出。和代码(“我已经提取...”)
-
目前,我有两个 32 位内存字,长型数字,一个是 1(因为符号是负数),另一个是二进制的 10。我也有字符数组 '5' 作为第一个也是唯一一个元素。它是所提供数字的分数(可以是“05”、“00001257852”等)。我只需要将其转换为位。
-
...在问题中,请不要像华夫饼那样。
标签: c floating-point