십진수로 16 진수를 VB.NET으로 변환해야합니다. C#에서 몇 가지 예제를 발견했지만 VB.NET으로 변환하려고했을 때 성공하지 못했습니다. 변환하려고하는 16 진수의 예는 "A14152464C203230304232323020572F544947455234352E"입니다.어떻게 VB.NET을 사용하여 16 진수를 10 진수로 변환합니까?
답변
이는 24 바이트 (192 비트) 숫자입니다. 어떤 가치를 기대합니까? 당신이 여기에 그런 일을 많이 할 Convert
을 사용할 수 있습니다
주 - (C#으로) 예를 들어이 :
당신이 숫자로raw
에서 얻을 어떻게
string hex = "A14152464C203230304232323020572F544947455234352E";
byte[] raw = new byte[hex.Length/2];
for (int i = 0; i < raw.Length ; i++)
{
raw[i] = Convert.ToByte(hex.Substring(i * 2,2), 16);
}
당신이 숫자가 어떻게 생각하는지에 따라 달라집니다 .NET Reflector의 ...
Visual Basic의 번역 제공 : ((가) "-1"이상한 보이지만) :
Dim hex As String = "A14152464C203230304232323020572F544947455234352E"
Dim raw As Byte() = New Byte((hex.Length/2) - 1) {}
Dim i As Integer
For i = 0 To raw.Length - 1
raw(i) = Convert.ToByte(hex.Substring((i * 2), 2), &H10)
Next i
숫자가 무엇인지 알 수 없습니다. Lockhead Martin은 방금이 데이터를 발송하기 시작했으며 문서를 완료하지 않았습니다. 우리는이 시점에서 발견 모드에 가깝습니다. 숫자를 얻기 위해 Raw (i) 값을 합산해야합니까? – user38349
아니오; 그건 나쁜 것입니다 ... 문제는 : 192 비트로 무엇을 할 것인가?(Int64), 6 ints (Int32), 2 소수, 1 BigInteger 등이 될 수 있지만 빅 엔디안, 리틀 엔디안 등이 될 수 있습니다. 바이너리 디코딩에는 약간의 지식이 필요합니다. 근원에 대해서. –
-1은 올바르므로 VB 배열 선언 구문은 배열의 상한을 제공하지만 C#은 배열의 항목 수를 제공합니다. 배열이 제로에 근거하고 있기 (위해) 때문에, 상한은 아이템의 수보다 하나 작다. – MarkJ
직접 작성하십시오.
문자열을 토큰 화 한 다음 오른쪽에서 시작하여 왼쪽으로 작업해야합니다.
int weight = 1;
While Looping
{
If (token(i) == "F") { DecimalValue += 15 * weight; }
If (token(i) == "E") { DecimalValue += 14 * weight; }
If (token(i) == "D") { DecimalValue += 13 * weight; }
If (token(i) == "C") { DecimalValue += 12 * weight; }
If (token(i) == "B") { DecimalValue += 11 * weight; }
If (token(i) == "A") { DecimalValue += 10 * weight; }
else { DecimalValue += token(i) * weight; }
weight = weight * 16;
}
그런 것.
이것은 10 진수에서는 작동하지 않으며 16 진수는 정수로는 너무 길지만 아이디어를 얻습니다. 당신은 그것을 분리하고 재결합 할 수 있습니다.
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = A1, Dec = 161
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 41, Dec = 65
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 52, Dec = 82
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 46, Dec = 70
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 4C, Dec = 76
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 20, Dec = 32
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 32, Dec = 50
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 30, Dec = 48
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 30, Dec = 48
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 42, Dec = 66
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 32, Dec = 50
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 32, Dec = 50
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 30, Dec = 48
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 20, Dec = 32
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 57, Dec = 87
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 2F, Dec = 47
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 54, Dec = 84
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 49, Dec = 73
Hex = A14152464C203230304232323020572F544947455234352E,HexPart = 47, Dec = 71
이것은 당신의 변환합니다 바이트의 배열로 트링 : 실제로 작업 할의 bignum 클래스를 필요로하지 않는 16 진수 값에 대한
Dim hex As String = "A14152464C203230304232323020572F544947455234352E"
Dim len As Integer = hex.Length \ 2
Dim data(len - 1) As Byte
For i As Integer = 0 to len - 1
data(i) = Convert.ToByte(hex.Substring(i * 2, 2), 16)
Next
Private Function toByte(ByVal Shex As String) As List(Of Byte)
Const cvtCH As Integer = 2
Dim retval As New List(Of Byte)
Dim rmndr As Integer
rmndr = Shex.Length Mod cvtCH
If rmndr <> 0 Then Shex = Shex.PadLeft(Shex.Length + cvtCH - rmndr, "0"c)
For x As Integer = 0 To Shex.Length - 1 Step cvtCH
retval.Add(Convert.ToByte(Shex.Substring(x, cvtCH), 16))
Next
Return retval
End Function
Private Function toU32(ByVal Shex As String) As List(Of UInt32)
Const cvtCH As Integer = 8
Dim retval As New List(Of UInt32)
Dim rmndr As Integer
rmndr = Shex.Length Mod cvtCH
If rmndr <> 0 Then Shex = Shex.PadLeft(Shex.Length + cvtCH - rmndr, "0"c)
For x As Integer = 0 To Shex.Length - 1 Step cvtCH
retval.Add(Convert.ToUInt32(Shex.Substring(x, cvtCH), 16))
Next
Return retval
End Function
Private Function toU64(ByVal Shex As String) As List(Of UInt64)
Const cvtCH As Integer = 16
Dim retval As New List(Of UInt64)
Dim rmndr As Integer
rmndr = Shex.Length Mod cvtCH
If rmndr <> 0 Then Shex = Shex.PadLeft(Shex.Length + cvtCH - rmndr, "0"c)
For x As Integer = 0 To Shex.Length - 1 Step cvtCH
retval.Add(Convert.ToUInt64(Shex.Substring(x, cvtCH), 16))
Next
Return retval
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'unsigned 32 bit max = FFFFFFFF
'unsigned 64 bit max = FFFFFFFF
'signed 32 bit max = 7FFFFFFF
'signed 64 bit max = 7FFFFFFF
Dim hexS As String = "A14152464C203230304232323020572F544947455234352E"
Dim hexS2 As String = "A14152464C203230304232323020572F54494745523435"
toByte(hexS)
toU32(hexS)
toU64(hexS)
End Sub
, 당신은 정상 변환 기능을 사용하지만 "& H"와 숫자를 앞에 수 있습니다. VB는 코드에서와 같이 텍스트에서 "& H"를 "16 진수입니다"라는 의미로 해석합니다.
dim n = Cint("&H" & text)
당신은 진수 값으로 16 진수 값을 변환하려면 Visual Basic에서 Val
기능을 사용할 수 있습니다. 이 문자열을 "&H"
접두사로 붙이면 Visual Basic에 16 진수 값임을 알리고이를 숫자로 변환합니다.
Dim Value As Integer = Val("&H" & YourHexadecimalStringHere)
Dim hex As String = "A1B2C3D4"
Dim int As Integer = Val("&H" & hex)
- 1. 10 진수를 2 진수로 변환
- 2. 이 코드가 16 진수를 10 진수로 변환하는 이유
- 3. 어떻게 큰 숫자를 10 진수로 변환합니까?
- 4. PHP에서 10 진수를 2 진수로 변환
- 5. 16 진수를 16 진수로 변환하여 일반적인 lisp로 표시
- 6. 어떻게 10 진수 정수를 하나의 16 진수 문자로 변환합니까? (C)
- 7. Objective-C 10 진수에서 16 진수로 변환
- 8. 16 진수로 비트 전환
- 9. URL의 16 진수를 문자열로 변환합니다.
- 10. 16 진수를 단 정밀도로 변환
- 11. 16 진수로 Console.WriteLine
- 12. JavaScript : 16 진수로 바꾸기
- 13. 16 진수 문자열을 10 진수로 변환하는 방법은 무엇입니까?
- 14. 16 진수를 float으로 변환
- 15. 함수에 16 진수를 전달합니다.
- 16. 일반적인 lisp 정수에서 16 진수로 변환
- 17. Python 10 진수를 물으십시오
- 18. SqlDecimal을 10 진수로 변환
- 19. 자바가 16 진수로 변환
- 20. 16 진수로 파이썬
- 21. 어떻게 C에서 ASCII로 16 진수로 변환 하시겠습니까?
- 22. NSString을 10 진수로 변환
- 23. 문자열을 10 진수로 변환
- 24. UIKeyboardTypeNumberPad 형식을 사용하여 10 진수를 삽입하려면 어떻게해야합니까?
- 25. 16 진수에서 2 진수로 변환 C++
- 26. 10 진수를 가장 가까운 10 번째 자리로
- 27. 16 진수를 부울 변환하는 데 도움이 되셨습니까?
- 28. 16 진수 쌍을 16 진수로 단축
- 29. 음수 10 진수를 문자열로 변환 -
- 30. Javascript에서 불투명도를 16 진수로 변환
당신이 기대하는 어떤 수를? 그건 192 비트 ... inbuilt 형식의 대부분보다 훨씬 더 큰 ... –
(귀하의 질문에 대한 덧글을 적어 둡니다) –