繁体   English   中英

二进制到十进制数的转换

[英]binary to decimal number conversion

我知道如何从二进制数中找到十进制等价物。 例如,找到二进制数 (101.01) 的十进制等值的一般方法是 (2^2)*1 + (2^1)*0 + (2^0)*1 + (2^-1)*0 + (2 ^-2)*1。

我的疑问是我们如何找到十进制等效范围为±3.4×10^38的冗长二进制数的十进制等效项。 冗长的意思是其中包含大量位,例如 0.00000000000100100100010100010010101 等。

我用我在开始时给出的一般方法进行了尝试,但是在这里使用该方法会导致大量时间消耗,并且几乎可以肯定得到错误答案的可能性。

同样,我尝试使用计算器和在线二进制到十进制转换器,它们给出了近似结果,但我需要准确的结果。

如果使用某些软件我可以做到这一点,那么请分享,我的最终目标是找到从冗长的二进制数中找到 100% 准确的十进制等效范围 ±3.4×10^38 的方法。

您的问题源于计算机不知道如何处理非常小(或大)的数字。 您的 CPU 有一个称为 ALU(算术逻辑单元)的组件,它对具有设定位数的数字进行基本计算。 由于您的数字需要比普通 CPU 存储更多的位,因此会导致舍入错误和计算错误。

为了解决这个问题,您可以使用任意精度算术软件,它占用更多的 memory 并模拟计算机的 ALU 以获得无限数量的位(尽可能多的您的 memory 可以处理),以换取 ZE199B49D7F3D619806

你可以在这里找到这样的软件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM