您提供的示例期望值只是数字的一个直接二进制表示,但是如果您想获得可以使用的二进制数字的IEEE-754表示,则可能不是最有效的方法
BitConverter.GetBytes
Sub Main
Dim i As Int32 = 1361294667
Console.WriteLine(ObjectAsBinary(i))
Dim s As Single = 1361294667
Console.WriteLine(ObjectAsBinary(s))
End Sub
Private Function ObjectAsBinary(o As Object) As String
Dim bytes = BitConverter.GetBytes(o)
If BitConverter.IsLittleEndian Then
Array.Reverse(bytes)
End If
Dim result As String = ""
For Each b In bytes
result &= Convert.ToString(b, 2).PadLeft(8, "0")
Next
Return result
End Function
该代码输出以下内容:
01010001001000111011010101001011
-符合你的例子
01001110101000100100011101101011
-符合IEEE-754
IEEE-754 Floating Point Converter