一个例子: 0.6345482635429
我要像选择(263)一样从(10 ^ -6)到(10 ^ -9)中选择数字并保存。我在Matlab中应用了它。我正在尝试在VHDL中应用它。该示例以十进制表示,而不是im使用的浮点格式。
是否可以将浮点数转换为十进制,然后从十进制格式中选择所需的数字/数字?
我正在使用32位浮点格式。我不知道如何为VHDL中的浮动数字选择相同范围的数字。
自从我本来不知道怎么做以来,我还没有尝试过任何东西。
谢谢!
答案 0 :(得分:2)
对于32位浮点对象,不能保留确定具有9个十进制数字的任意数字的位所需要的信息(具有1位指数或1的简并浮点格式除外)两位指数,没有符号位。
浮点格式表示数学数字,而不是数字。特别是,二进制格式不代表十进制数字。小心使用浮点数来计算各种数学运算得出的十进制数字是可能的,但这需要知识和良好的设计。通常,这是一个坏主意,并且有更好的解决方案。对于VHDL,这可能是一个非常糟糕的主意。对于使用32位浮点数的9位数字,这是不可能的,因为以正常的32位格式显示的信息不足以保留9位十进制数字,更不用说用它们进行计算了。
IEEE-754基本的32位二进制浮点格式具有24位有效数字。 2 24 = 16,777,216,甚至还不是八位数。如果在您的示例中,所表示的数字约为.634,则有效位数的高位对应于2 -1 ,而低位对应于2 -24 约为.0000000596046。这不足以保留小数点后第七位的数字。
如果要使用多个32位浮点对象表示数字或数字,则某些扩展精度技术可能会起作用。但是,很可能有更好的解决方案,也许是直接代表一串十进制数字的东西。