Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 长到十六进制VB6,用c重新编码#_C#_Vb6_Hex_Long Integer - Fatal编程技术网

C# 长到十六进制VB6,用c重新编码#

C# 长到十六进制VB6,用c重新编码#,c#,vb6,hex,long-integer,C#,Vb6,Hex,Long Integer,我想用c#编写VB6应用程序的这一部分。 如何将long值更改为十六进制值 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(l

我想用c#编写VB6应用程序的这一部分。 如何将long值更改为十六进制值

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
公共函数longToHex(长度为l)为字符串
longToHex=十六进制(l)
如果Len(longToHex)<4,则longToHex=字符串(4-Len(longToHex),“0”)&longToHex
longToHex=右侧(longToHex,2)和左侧(longToHex,2)
端函数

只需格式化为填充十六进制字符串:

string.Format("{0:X4}", myLong.ToString().Length / 2)
然后将前两个字符转换为后两个字符

VB6代码似乎将
sData
的长度除以2,然后将长度转换为十六进制字符串,并在需要时填充0到4个字符。然后,它将前两个字符与后两个字符进行转换。

似乎很复杂——代码应该做什么?十六进制字符串长度的一半?
这可能会起作用:
sLen=(sData.length/2)。ToString(“X”)

这不起作用,我必须通过这个获得长时间的测试。我把sData的长度写成一个长的,然后把它放进一个字符串中。我的意思是,如果我除以sData的长度(“12345”),我会得到2,5,但2是对的。@Noli-你错了。在C#中,如果执行
5/2
,则会得到
2
。它叫。哦,我真的很抱歉我现在看到了。我无法处理这是我认为是的。现在我找到了解决办法!你看过VB6文档了吗。例如。