我目前正在使用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?中描述的算法。但对我不起作用。
!还有:我发现了很多关于点之前的部分的转换的帮助,但是让我感兴趣的是小数部分的转换
1条答案
按热度按时间sr4lhrrt1#
1.将小数部分乘以10。
1.把整数部分和小数部分分开。
1.整数部分是下一个十进制数字。
1.转到步骤1。
至于何时停止,如果你有 n 个十六进制数字,那么你可以从中得到floor(n log(16)/log(10))个十进制数字。
虽然你的最后三个十六进制数字的 e 是错误的。它们应该是
d87
而不是ceb
。