Algorithm 十进制小数到浮点二进制表示的转换

Algorithm 十进制小数到浮点二进制表示的转换,algorithm,decimal,ieee-754,Algorithm,Decimal,Ieee 754,假设我们有一个指数范围为[-3,3]且精度为4位的标准化浮点数。下面是4个十进制数和相应的二进制表示。如何将这些十进制数转换为二进制数?我知道如何从二进制到十进制,但不是相反 0.11 (decimal) = 1.000 * 2^-3 (binary) 3.1416 (decimal) = 1.101 * 2^1 (binary) 2.718 (decimal) = 1.011 * 2^1 (binary) 7 (decimal) = 1.110 * 2^2 (binary) 从尾数和指数的定

假设我们有一个指数范围为[-3,3]且精度为4位的标准化浮点数。下面是4个十进制数和相应的二进制表示。如何将这些十进制数转换为二进制数?我知道如何从二进制到十进制,但不是相反

0.11 (decimal) = 1.000 * 2^-3 (binary)
3.1416 (decimal) = 1.101 * 2^1 (binary)
2.718 (decimal) = 1.011 * 2^1 (binary)
7 (decimal) = 1.110 * 2^2 (binary)

从尾数和指数的定义出发。指数是最简单的部分。尾数只不过是两个负幂的和:1+½+¼+⅛ … , 有些是乘一,有些是乘零

要确定指数的值,请找到二的最大幂,当二者相除(乘以[0,1]中的数字)时,会给出[1,2]范围内的值

对于0.11,它是-4(而不是您所说的-3),即0.11*2⁴ = 1.76. 对于3.1416,它是+1,因为3.1416/2ª=1.5708

然后在[1,2]范围内留下一个数字
m
,将其转换为二进制分数。从
r
=“1”开始。结果是,从
m
中减去1,然后将其乘以2。 如果结果不止一个,则在
r
的末尾写上“1”,并从
m
中减去1,否则在
r
的末尾写上“0”。继续乘以2,并可以选择从
m
中减去1,同时写下“0”和“1”到
r
取决于是否必须减去1。当尾数中有足够的数字时停止

我想你可以自己弄清楚怎么做