在C中用十进制打印出非常大的十六进制小数点

zpgglvta  于 2023-08-03  发布在  其他
关注(0)|答案(1)|浏览(100)

我目前正在使用C中的bignums,并希望转换为字符串/打印出非常大的十六进制小数点。
例如:2.B7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF324E7738926CFBE5F4BF8D8D8C31D763DA06C80ABB1185EB4F7C7B5757F5958490CFD47D7C19BB42158D9554F7B46BCED55C4D79FD5F24D6613C31C3839A2DDF8A9A276BCFBFA1C877C56284DAB79CD4C2B3293D20E9E5EAF02AC60ACC93ECEB
将成为
2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901157383418793070215408914993488416750924476146066808226480016847741185374234544243710753907774499206955170
有人能帮我吗?我已经看过以下文章:How do I convert a very long binary number to decimal?的数据。
但这对我没有帮助,因为分数转换对我不起作用。
我尝试了How do I convert a very long binary number to decimal?中描述的算法。但对我不起作用。
!还有:我发现了很多关于点之前的部分的转换的帮助,但是让我感兴趣的是小数部分的转换

sr4lhrrt

sr4lhrrt1#

1.将小数部分乘以10。
1.把整数部分和小数部分分开。
1.整数部分是下一个十进制数字。
1.转到步骤1。
至于何时停止,如果你有 n 个十六进制数字,那么你可以从中得到floor(n log(16)/log(10))个十进制数字。
虽然你的最后三个十六进制数字的 e 是错误的。它们应该是d87而不是ceb

相关问题