gpt4 book ai didi

algorithm - 你如何计算除 10 以外的基数中的 float ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:09 25 4
gpt4 key购买 nike

鉴于维基百科关于 Radix Point 的文章,如何计算 10.1 的二进制等效值或 17.17 的十六进制等效值?对于前者,十分之一的二进制当量是多少?对于后者,17/100 的十六进制表示?

我寻找的更多是算法,而不是这两个示例的解决方案。

最佳答案

要将十进制 10.1 转换为二进制,请将整数和小数部分分开并分别转换。

要转换整数部分,使用重复的整数除以 2,然后倒序写余数:

10/2 = 5 余数 0

5/2 = 2 余数 1

2/2 = 1 余数 0

1/2 = 0 余数 1

答案:1010

要转换小数部分,请重复乘以 2,每一步减去整数部分。整数部分按生成顺序表示您的二进制数:

0.1 * 2 = 0.2

0.2 * 2 = 0.4

0.4 * 2 = 0.8

0.8 * 2 = 1.6

0.6 * 2 = 1.2

0.2 * 2 = 0.4

0.4 * 2 = 0.8

...(循环永远重复)

所以十进制 0.1 是二进制 0.000110011001100...

(有关更详细的解释,请参阅我的文章 http://www.exploringbinary.com/base-conversion-in-php-using-bcmath/ 中的例程 dec2bin_i() 和 dec2bin_f()。)

对于十六进制,使用相同的程序,除了除数/乘数为 16 而不是 2。大于 9 的余数和整数部分必须直接转换为十六进制数字:10 变为 A,11 变为 B,..., 15 变成 F。

关于algorithm - 你如何计算除 10 以外的基数中的 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com