2009-11-28 154 views
-1

请指导我如何将该输入转换为decimal.tq。如何将字节转换为小数?

BF C2 FF 12 
65 E4 EE 
17 BF C2 64 F2 41 84 11 
C1 C4 38 41 14 10 C1 04 10 49 04 18 41 06 72 B5 FF 
17 BF C2 64 72 
41 84 11 C1 85 19 C1 07 17 7D C2 5F 3D 5E FD DE 57 FD 10 E1 94 30 B5 FF 
17 BF C2 FF 12 
65 CC 76 
17 BF C2 FF 12 
69 FC 77 
+2

什么语言是您使用? – 2009-11-28 15:08:08

+1

十六进制到十进制转换(反之亦然)是理解更基本的概念之一。如果你可以做二进制转换,那么不是base-2,而是base-16。超越这个概念是完全相同的。谷歌十六进制到十进制转换,或在维基百科上阅读关于十六进制/基本-16。 – 2009-11-28 15:16:18

+0

为什么第一个3位数? 217 – YOU 2009-11-28 15:22:16

回答

1

如果你有Windows打开计算器,并去查看科学。然后,您可以一次将小部分代码转换为一组。

要做到这一点,你除以16,直到你得到零,然后你结合余数。

0

你应该告诉我们你的输入和想要的输出格式。 我假设你有一个名为“input”的字符串变量中的数据,并希望它作为字节数组。

Dim input As String = IO.File.ReadAllText("C:\data.txt") 
Dim output As Byte() = input.Split(" ").Select(Function(b) Convert.ToByte(b, 16)).ToArray 

编辑:

For Each part As String In IO.File.ReadAllText("C:\data.txt").Split(" ") 
    If part.Trim.Length > 0 Then 
     Dim number As Integer = Convert.ToInt32(part, 16) 
     Console.Write(number & ",") 
    End If 
Next 
+0

我有这个数据在C:\ data.txt – 2009-11-28 15:50:50

+0

好吧解决了这个问题。输出仍然是Byte(),因为你对此没有提及。 – 2009-11-28 16:14:14

+0

在C:\ data.txt输入,我输出为控制台 – 2009-11-28 16:20:17

0
Dim input As String = "BF C2 FF 12 65 E4 EE 17 BF C2 64 [...]" 
For Each s As String In input.Split(" "c) 
    Dim value As Integer = Convert.ToInt32(s, 16) 
    Console.Write(value & " ") ' Or whatever else you want to do with the converted data 
Next 
+0

什么类型的C?整数或字符? – 2009-11-28 16:17:58

+0

我不明白你的问题。 ''“”c“表示空格字符(C#中的''''),而不是'”“',这意味着:包含空格的字符串(C#中的''”'')。 – Heinzi 2009-11-28 16:22:28

+0

澄清:'''“c'中的'c'不是一个变量,而是一个语法元素(*字面类型字符*),请参阅:http://msdn.microsoft.com/en-us/library/ s9cz43ek%28VS.80%29.aspx – Heinzi 2009-11-28 16:27:43