我正在尝试进行一些RFID编码,在该编码中,将以我已经创建的形式在文本框中键入十六进制的16位数字(0-> F)。我的问题是如何将.Text格式转换为可转换为Byte()格式的内容,或者将其转换为该格式的子步骤的任何内容。
经过大量研究和许多重复的错误,我认为我使用的任何功能都不会将每个字符都视为一个数字,而是将整个文本视为一个值。因此,我尝试将其解析为单个字符,但仍然不允许这样做。
我试过了:
System.Convert.To___{anything, byte, integer, decimal,string}__(Next_TID.Text
*or that same thing converted into a string* })
Dim text As New System.Text.StringBuilder(textinfo.Length \ 2)
for i As integer = 0 To textinfo.Length - 2 Step 2
text.Apend(Chr(Convert.ToByte(textinfo.Substring(i,2), 16)))
Next
这不断给我一个错误,说它找不到任何可识别的数字,我认为这意味着它将整个内容视为一个大数字而不是单个数字。
两周前,我还没有在vb中进行编码,但是由于有许多练习程序和研究,我不知道自己做错了什么。(对不起,如果代码示例没有正确显示)
这应该可以工作-试试看:
代码将同时构建字节值数组和二进制数字字符串数组(仅用于演示)。
Dim s As String = TextBox1.Text
Dim bytes As New List(Of Byte)
Dim byteStrings As New List(Of String)
For i As Integer = 0 To s.Length - 2 Step 2
Dim hexDigit As Byte = Convert.ToByte(s.Substring(i, 2), 16)
bytes.Add(hexDigit)
byteStrings.Add(Convert.ToString(hexDigit, 2).PadLeft(8, "0"))
Next
Dim output As String = String.Join("-", byteStrings)
MsgBox(output)
字节值只是数字,如果不明确说明,则无法从它们获取二进制字符串。这是通过完成的Convert.ToString(SomeNumericValue, 2)
。
另外,如果您不需要-
垫片,则可以简单地执行以下操作:
Dim hexValue As Integer = Convert.ToInt32(TextBox1.Text, 16)
MsgBox(Convert.ToString(hexValue, 2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句