2012-06-13 2 views
-3

VB6 응용 프로그램의이 부분을 C#으로 코딩하고 싶습니다. long을 어떻게 16 진수 값으로 변경할 수 있습니까? 패딩 16 진수 문자열로16 진수로 VB6, C 코드로 코드화

Public Function longToHex(l As Long) As String 
    longToHex = Hex(l) 
    If Len(longToHex) < 4 Then longToHex = String(4 - Len(longToHex), "0") & longToHex 
    longToHex = Right(longToHex, 2) & Left(longToHex, 2) 
End Function 
+0

VB6 설명서를 보았습니까? 예 : [16 진수 함수] (http://msdn.microsoft.com/en-us/library/aa445020(v=60) .aspx) [왼쪽 함수] (http://msdn.microsoft.com/en-us/ /library/aa445061(v=vs.60).aspx) [문자열 함수] (http://msdn.microsoft.com/en-us/library/aa263374(v=60) .aspx) – MarkJ

답변

6

그냥 형식 :

string.Format("{0:X4}", myLong.ToString().Length/2) 

그런 다음 마지막으로 두 사람과 함께 처음 두 문자를 바꾸어.

VB6 코드는 sData의 길이를 2로 나눈 것으로 나타나며, 길이를 16 진수 문자열로 변환하고 필요하면 0에서 4 문자로 채 웁니다. 그런 다음 처음 두 문자를 마지막 두 문자로 바꿉니다.

+0

이것은 아닙니다. 일하는 것은 긴 목소리를 얻어야 해. 나는 sData의 길이를 길게 가져 와서 문자열에 넣는다. 내가 sData ("12345")의 길이를 나눈다면 나는 2.5 점을 얻지 만 2 점은 맞을 것입니다. – Noli

+1

@ Noli - 틀 렸습니다. C#에서는'5/2'를하면'2'가됩니다. [Integer Division] (http://mathworld.wolfram.com/IntegerDivision.html)이라고합니다. – Oded

+0

오, 정말 미안해. 나는 그것이 그것이라고 생각했는지 나는 감당할 수 없었다. 이제 해결책을 얻었습니다! – Noli

1

복잡하게 보입니다. 코드는 무엇을해야합니까? 16 진수의 문자열의 절반 길이? 작동 여부 : sLen = (sData.length/2).ToString("X")