类型转换,很急,只有80分了,全给————————在线等,急

khpcg 2005-06-01 10:53:58
VB代码是这样的:
Private Function StrToByte(ByVal strIn As String, ByRef bOut() As Byte) As Byte '将字符串分解成单个字符
Dim i As Integer
Dim dwInLen As Long

dwInLen = Len(Trim(strIn)) / 2注释Len是求长度
For i = 0 To dwInLen - 1
bOut(i) = "&H" + Mid(strIn, 2 * i + 1, 2)注释Mid是取其中的字符从2*i开始,取2个
Next i
End Function
Private Function ByteToStr(ByRef bIn() As Byte, ByVal dwInLen As Long, ByRef strOut As String) As Byte '将单个字符合并成字符串
Dim i As Integer

strOut = ""
For i = 0 To dwInLen - 1
If (bIn(i) <= 10) Then
strOut = strOut & "0" & Hex(bIn(i))
Else
If (Len(Trim(Hex(bIn(i)))) < 2) Then
strOut = strOut & "0" & Hex(bIn(i))注释&是c#里的+,即字符连接
Else
strOut = strOut & Hex(bIn(i))注释Hex是转化成16进制的意思
End If
End If
Next i

End Function
函数一功能是将string转换成byte[]型,32个字符转化成256个byte.
函数二功能是将256个byte转化成string,其中对二进制有判断。

希望大家多帮助,up有分,很感谢!
...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
coveking 2005-06-01
  • 打赏
  • 举报
回复
UP
WTaoboy 2005-06-01
  • 打赏
  • 举报
回复
string s = "abcdefghijklmnopqrstuvwxyz123456";
System.Text.Encoding.UTF8.GetBytes(s)
mathsword 2005-06-01
  • 打赏
  • 举报
回复
真的不明白你做什么,我查了查相关函数你自己看看吧
CByte Byte 0 到 255,舍入小数部分。
CByte 示例
本示例使用 CByte 函数将表达式转换为 Byte。

Dim MyDouble As Double
Dim MyByte As Byte
MyDouble = 125.5678
MyByte = CByte(MyDouble) ' MyByte is set to 126.

CChar 示例
本示例使用 CChar 函数将 String 表达式的第一个字符转换为 Char 类型。

Dim MyString As String
Dim MyChar As Char
MyString = "BCD" ' CChar converts only first character of string.
MyChar = CChar(MyString) ' MyChar is set to "B".
CChar 的输入参数必须是 String 数据类型。由于 CChar 不能接受数值数据类型,因此无法使用 CChar 将数字转换为字符。本示例获取一个表示代码数据点(字符代码)的数字,然后将其转换为对应的字符。它使用 InputBox 获取数字字符串,并使用 CInt 将该字符串转换为 Integer 类型,然后使用 ChrW 将该数字转换为 Char 类型。

Dim MyDigits As String ' Input string of digits to be converted.
Dim CodePoint As Integer ' Number to be represented as a character.
Dim MyChar As Char
MyDigits = InputBox("Enter code point of character:")
CodePoint = CInt(MyDigits) ' Convert entire string to Integer.
MyChar = ChrW(CodePoint) ' MyChar is set to Char value of code point.

Asc、AscW 函数请参见


程序集:Microsoft Visual Basic .NET 运行库(位于 Microsoft.VisualBasic.dll 中)
返回一个 Integer 值,该值表示与某个字符相对应的字符代码。

备注
Asc 返回输入字符的代码数据点或字符代码。对于单字节字符集 (SBCS),返回值范围为 0 到 255;对于双字节字符集 (DBCS),返回值范围为 -32768 到 32767。返回值取决于当前线程的代码页,该代码页包含在 TextInfo 类的 ANSICodePage 属性中。可以通过指定 System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage 来获得 TextInfo.ANSICodePage。
AscW 返回输入字符的 Unicode 代码数据点。返回值范围为 0 到 65535。返回值与当前线程的区域性和代码页设置无关。
注意 对于字节,Visual Basic 早期版本的 AscB 函数返回的是代码,而不是字符。它主要用于在双字节字符集 (DBCS) 应用程序中转换字符串。所有 Visual Basic .NET 字符串均采用 Unicode 的形式,并且不再支持 AscB。
示例
本示例使用 Asc 函数返回与每个字符串的第一个字母相对应的 Integer 字符代码。
Dim MyInt As Integer
MyInt = Asc("A") ' MyInt is set to 65.
MyInt = Asc("a") ' MyInt is set to 97.
MyInt = Asc("Apple") ' MyInt is set to 65.



pupo 2005-06-01
  • 打赏
  • 举报
回复
string s = "abcdefghijklmnopqrstuvwxyz123456";
byte[] b = System.Text.Encoding.Default.GetBytes(s);
string ss = System.Text.Encoding.Default.GetString(b);
windinwing 2005-06-01
  • 打赏
  • 举报
回复
不明白你要做什么
windinwing 2005-06-01
  • 打赏
  • 举报
回复
不明白你要做什么
wh8254 2005-06-01
  • 打赏
  • 举报
回复
up真地有分吗?
那就up一下!
wingnal 2005-06-01
  • 打赏
  • 举报
回复
up
khpcg 2005-06-01
  • 打赏
  • 举报
回复
我的c#代码是:
private string DES_Ecb(string strIn , long dwInLen , string strTransCodeIn , long dwTransCodeInLen , long dwMode)
{
byte[] bTemp=System.Text.Encoding.Default.GetBytes(strIn);//使用到VB中的函数一,但不知道对否?
string strSoftDESEcbOut="";
byte[] bTransCodeTemp=System.Text.Encoding.Default.GetBytes(strTransCodeIn);
byte[] bDESEcbOut=new byte[256];
long dwErrCode;
dwErrCode=SoftDESEcb(ref bTemp[0], dwInLen,ref bTransCodeTemp[0], dwTransCodeInLen, dwMode,ref bDESEcbOut[0]);
ByteToStr(ref bDESEcbOut, dwInLen,ref strSoftDESEcbOut);//=========
return (strSoftDESEcbOut);
}

private void ByteToStr(ref byte[] bIn , long dwInLen, ref string strOut) //将单个字符合并成字符串//VB中的函数二的实现
{
//int i;
strOut = "";
for(int j = 0; j<= dwInLen - 1;j++)
{
string bInstr,strHex;long bInLon;
bInstr=bIn[j].ToString();
bInLon=Convert.ToInt32(bInstr,2);
strHex=Convert.ToString(j,16);
if (bIn[j] <= 10)
{


strOut=strOut+"0"+strHex;//strOut = strOut + "0" + bIn[i].Hex(bIn[i]); //strOut = strOut & "0" & Hex(bIn(i))
//string sValue=Convert.ToString(iChar,16);convert2to16=sValue+Convert216(sInputWord);
}
else
{
if (strHex.Length< 2)
{
strOut = strOut + "0" +strHex;
}
else
strOut = strOut + strHex;
}
}
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧