【发布时间】:2016-05-08 23:10:55
【问题描述】:
我目前正在为假设的 CPU 创建一个模拟器。 CPU 有 16 个 8 位寄存器,可以表示有符号字节或 8 位浮点数。
SByte 和 FByte 都包含一个字节成员变量。
我目前已经研究出如何使用以下方法获取浮动字节的实际值:
FByte = SEEEEMMM
value = (-1)^S + 1.M^(E-7)
S = Sign bit
M = Mantissa
E = Exponent
如何将给定的双精度值(例如 -3.562)转换为浮点表示(如 SEEEEMMM)。
提前致谢!
编辑:我目前知道如何在理论上做到这一点 - 用 base-2 科学记数法和二进制表示形式编写它,但在我的程序中这样做需要使用字符串操作,而我宁愿将字符串中介排除在外它。
【问题讨论】:
-
我不明白您是如何将 String 放入 的,也不知道您在编写代码时遇到的实际问题是什么。
-
现在有点难以解释,因为我在手机上,但我已经介绍了字符串,因为我已经通过书面纸方法学会了这一点,即将十进制转换为二进制。 3.25 -> +11.01(我的字符串中介,因为我不知道如何用其他数据类型表示),然后移动浮点并将其转换为浮点格式。
标签: java floating-point type-conversion