[英]Converting from octal to binary in vb.net
我想将八进制数转换为二进制数,以用于与我的航空电子设备相关的目的(具体是应答器)。 我在业余时间做vb.net,自己学习。 但是为此,即使在谷歌搜索后,我也不知道该怎么做。
到目前为止,这是我的设置方法: form1
这是我到目前为止的所有代码。 因此只能输入数字1-7:
Public Class Form1
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 55 Then
e.Handled = True
End If
End If
End Sub
End Class
我不确定如何将Textbox1.text转换为二进制文件,然后将其分隔为以下用于A,B,C,D的文本框。
例如: 您有A4,A2和A1(000)。 这些加到7(111)。 对于B,C和D重复此操作。
因此,总而言之,我想将八进制数转换为二进制数,并且如果可以的话,将其分成对应于字母的单独的框。
这是它的外观(不能发布两个以上的链接):2134 = A4,2,1(010)B4,2,1(001)C4,2,1(011)D4,2,1(100) )
编辑:我试过Convert.ToString(#NUMBER,2),但它返回错误的二进制代码。 7631返回1110111001111,但应该为111110011001。请参见http://ncalculators.com/digital-computation/binary-octal-converter.htm
要将八进制字符串转换为二进制字符串:
Private Function OctToBin(octal As String) As String
Return Convert.ToString(Convert.ToInt32(octal, 8), 2)
End Function
要将二进制字符串转换为三个字符的子字符串数组:
Private Function ToBinBytes(binary As String) As String()
Dim chars = binary.Reverse().ToArray()
Dim binBytes As New List(Of String)
Do While chars.Length > 0
Dim byteChars = chars.Take(3).Reverse().ToArray()
binBytes.Add(New String(byteChars).PadLeft(3, "0"c))
chars = chars.Skip(3).ToArray()
Loop
Return binBytes.AsEnumerable().Reverse().ToArray()
End Function
两者都未经测试,但我认为它们是正确的。
经过以下代码测试:
Dim n = 1234567
Dim o = Convert.ToString(n, 8)
Dim b = OctToBin(o)
MessageBox.Show((n = Convert.ToInt32(b, 2)).ToString())
MessageBox.Show(String.Join(Environment.NewLine, ToBinBytes(b)), b)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.