【发布时间】:2020-01-04 10:13:48
【问题描述】:
当我将此二进制转换为十进制时:
010000010110110001101001001000000100000101101000011011010110010101100100001000000100111101110011011011010110000101101110001000000110001001101001011100100111010001101000011001000110000101110100011001010011101000110001001011010011001100101101001100010011100100111000001101110010000001100011011011110111010101101110011101000111001001111001001110100111001101110101011001000110000101101110 P>
使用 VB.Net,我得到了这个双数:1.00695950340148E+115。
我需要将其格式化为正常数字,如下所示:
10069595034014783469636931351646363690636553221072125712116008033168565762469882090200055592025448896479090348155246
我如何使用 PHP 或 VB.Net 做到这一点?
Public Class Test
Public Shared Sub Main()
Dim Bin as String = "010000010110110001101001001000000100000101101000011011010110010101100100001000000100111101110011011011010110000101101110001000000110001001101001011100100111010001101000011001000110000101110100011001010011101000110001001011010011001100101101001100010011100100111000001101110010000001100011011011110111010101101110011101000111001001111001001110100111001101110101011001000110000101101110"
Dim dec As Double = Nothing
Dim length As Integer = Len(Bin)
Dim temp As Integer = Nothing
Dim x As Integer = Nothing
For x = 1 To length
temp = Val(Mid(Bin, length, 1))
length = length - 1
If temp <> "0" Then
dec += (2 ^ (x - 1))
End If
Next
System.Console.WriteLine("Sum of x and y = " & dec)
End Sub
End Class
输出是:
Visual Basic.Net 编译器版本 0.0.0.5943 (Mono 4.7 - tarball)
版权所有 (C) 2004-2010 Rolf Bjarne Kvinge。保留所有权利。
程序集'jdoodle,版本 = 0.0,文化 = 中性,PublicKeyToken = null' 成功保存到“/home/jdoodle.exe”。编译成功
编译耗时 00:00:01.1970230
x 和 y 之和 = 1.00695950340148E+115
【问题讨论】:
-
System.Numerics.BigInteger。逐个字符解析输入字符串(
For Each循环会做),1解析left shift (<<=) 然后添加1或0,具体取决于您要解析的字符。跨度> -
如果您要标记为
vb.net,请使用vb.net。您应该已将其标记为 vb6,这是愚蠢的古老事物的正确标记,例如:LenValMid。你为什么要做= Nothing之类的事情?你知道那是什么意思吗?请阅读vb.net的快速介绍。 -
@video.baba 这是一个新的贡献者。您的观点有效,但您的交付方式没有帮助。
-
@video.baba :实际上这些函数在 VB.NET 中也存在,
Microsoft.VisualBasic.Stringsmodule 中也存在。 VB6 标记将不合适,因为其余代码实际上是 VB.NET。 -- 但是,正如您所说,这些功能是 旧的,并且仅为了向后兼容/更易于移植而存在,所以我同意应该努力使用 .NET 替代方案。 :)
标签: php vb.net binary decimal converters