Horner Schema以及浮点数的进制转换

这是第三次RO作业的C语言编程内容。

这次作业涉及到Horner Schema(原数除以Basis求余的进制转换方式)和float类型数的进制转换。

十进制小数转换为二进制小数的方法:“乘2取整”

对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。

如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位。

如:0.25的二进制
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

十进制小数转换为十六进制小数方法:“乘16取整”

例如:

(0.142578125)10=(0.248)16

0.142578125*16=2.28125 取整2
0.28125*16=4.5 取整4
0.5*16=8.0 取整8
即0.248

0 回复

发表评论

Want to join the discussion?
Feel free to contribute!

发表评论