我需要 select 浮点数中的某些数字。可能吗?如果是,如何?
I need to select certain digits from a floating number. Is it possible? if yes, how?
一个例子:
0.6345482635429
我想 select 从 (10^-6) 到 (10^-9) 的数字,如 select (263) 并保存。我在 Matlab 中应用了这个。我正在尝试将它应用到 VHDL 中。该示例是十进制透视图,而不是我使用的浮点格式。
是否可以将浮点数转换为十进制,然后从十进制格式select所需的number/digits?
我正在应用 32 位浮点格式。我不知道如何 select VHDL 中浮点数的相同数字范围。
我还没有尝试任何东西,因为我本来不知道该怎么做。
谢谢!
32 位 floating-point 对象不可能保留确定具有九个十进制数字的任意数字所需的信息(除了退化的 floating-point 格式 one-bit 指数或带有 two-bit 指数且无符号位)。
Floating-point 格式表示数学数字,而不是数字。特别是,二进制格式不代表十进制数字。如果小心,可以使用 floating-point 来计算各种数学得出的十进制数字,但这需要知识和良好的设计。通常,这是一个坏主意,并且有更好的解决方案。对于 VHDL,这可能是一个非常糟糕的主意。对于使用 32 位 floating-point 的 nine-digit 数字,这是不可能的,因为以普通 32 位格式显示的信息不足以保留九个十进制数字,更不用说用它们计算了。
IEEE-754 基本 32 位二进制 floating-point 格式具有 24 位有效数字。 224 = 16,777,216,连八位数都不到。如果表示的数字在您的示例中约为 .634,则有效数的高位对应于 2−1,低位对应于 2−24,大约是 .0000000596046。这不足以保留小数点后第七位的数字。
如果您想使用多个 32 位 floating-point 对象来表示数字或数字,一些 extended-precision 技术可能会奏效。但是,很可能有更好的解决方案,也许可以直接表示一串十进制数字。
一个例子: 0.6345482635429
我想 select 从 (10^-6) 到 (10^-9) 的数字,如 select (263) 并保存。我在 Matlab 中应用了这个。我正在尝试将它应用到 VHDL 中。该示例是十进制透视图,而不是我使用的浮点格式。
是否可以将浮点数转换为十进制,然后从十进制格式select所需的number/digits?
我正在应用 32 位浮点格式。我不知道如何 select VHDL 中浮点数的相同数字范围。
我还没有尝试任何东西,因为我本来不知道该怎么做。
谢谢!
32 位 floating-point 对象不可能保留确定具有九个十进制数字的任意数字所需的信息(除了退化的 floating-point 格式 one-bit 指数或带有 two-bit 指数且无符号位)。
Floating-point 格式表示数学数字,而不是数字。特别是,二进制格式不代表十进制数字。如果小心,可以使用 floating-point 来计算各种数学得出的十进制数字,但这需要知识和良好的设计。通常,这是一个坏主意,并且有更好的解决方案。对于 VHDL,这可能是一个非常糟糕的主意。对于使用 32 位 floating-point 的 nine-digit 数字,这是不可能的,因为以普通 32 位格式显示的信息不足以保留九个十进制数字,更不用说用它们计算了。
IEEE-754 基本 32 位二进制 floating-point 格式具有 24 位有效数字。 224 = 16,777,216,连八位数都不到。如果表示的数字在您的示例中约为 .634,则有效数的高位对应于 2−1,低位对应于 2−24,大约是 .0000000596046。这不足以保留小数点后第七位的数字。
如果您想使用多个 32 位 floating-point 对象来表示数字或数字,一些 extended-precision 技术可能会奏效。但是,很可能有更好的解决方案,也许可以直接表示一串十进制数字。