C#编程,如何把含有,汉子,数字,字母以及标点符号的一段文字转换为16进制,并从16进制在转换回来

如何把一段包含汉子,数字,大小写字母,标点符号的文字转换为16进制并把它从16进制转换回来呢?例如 “碑林区(8)号,一品美道A座2010室”。如果可以的话请给下代码。万分感谢!

/// <summary> /// 转换16进制 /// </summary> /// <param name="str"></param> /// <returns></returns> public string StrToHex(string str) { string strTemp = ""; if (str == "") return ""; byte[] bTemp = System.Text.Encoding.Default.GetBytes(str); for (int i = 0; i < bTemp.Length; i++) { strTemp += bTemp[i].ToString("X"); } return strTemp; }

//16进制转回字符串
string xx = ""; string s = dataBuff; string[] cip = new string[s.Length / 2]; for (int i = 0; i < s.Length / 2; i++) { cip[i] = s.Substring(2 * i, 2); } foreach (string x in cip) { int scc = int.Parse(x.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); xx += ((char)scc).ToString(); }
这种方法是我在用的,适用于字母和数字,至于汉字没试过,不一定行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-15

你要的是这种???

 

如果是,代码如下:

foreach (byte item in Encoding.ASCII.GetBytes(textBox1.Text))

{

    textBox2.Text += item.ToString("X8") + " ";

}

 如果不是,请另外说明!

追问

这个是我转换后的效果,咱们俩转换完的16进制怎么不一样啊!我用的是VB刚接触C#不知道该怎么做!

本回答被提问者采纳
第2个回答  2014-01-15
public string EncodingSMS(string s)
{
string result = string.Empty;

byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
for(int i = 0; i < arrByte.Length; i++)
{
result += System.Convert.ToString(arrByte[i], 16); //Convert.ToString(byte, 16)把byte转化成十六进制string
}

return result;
}
public string DecodingSMS(string s)
{
string result = string.Empty;

byte[] arrByte = new byte[s.Length / 2];
int index = 0;
for(int i = 0; i < s.Length; i += 2)
{
arrByte[index++] = Convert.ToByte(s.Substring(i,2),16); //Convert.ToByte(string,16)把十六进制string转化成byte
}
result = System.Text.Encoding.Default.GetString(arrByte);

return result;

}追问

我想要的是转换成16进制,并不是16进制和字节间的转换。刚接触C#.还望指导。

追答

System.Convert.ToString(arrByte[i], 16); 这一句就是取一个字节转成16进制的字符串
Convert.ToByte(s.Substring(i,2),16); 这一句是把16进制的字符串取两位转成字节,最后统一转成字符串,有什么问题吗?

追问

不好意思,是我自己理解错了!

C#编程,如何把含有,汉子,数字,字母以及标点符号的一段文字转换为16进制...
\/\/16进制转回字符串 string xx = ""; string s = dataBuff; string[] cip = new string[s.Length \/ 2]; for (int i = 0; i < s.Length \/ 2; i++) { cip[i] = s.Substring(2 * i, 2); }

...英文、数字,那请问怎样转为对应的16进制数据?
byte[] data = System.Text.Encoding.UTF8.GetBytes("中文English0123456789"); 然后将byte[]转换为十六进制表示即可。.NET只提供了byte到16进制的方法,所以在这里新写了一个byte[]到16进制的方法:string Hex(byte[] data){ string hex = ""; foreach (byte b in data) { h...

C#里如何对位数很长的数字(已处理为字符串)转化为16进制
当作 string 类型来计算,先截取最后一位,看够不够减2,够了就把减去的结果替换掉 string 最后一位;不够就再截取最后两位看,依次类推。除法就是反复做减法,直到最后一次减法结果要变负数为止,商和余数就出来了)。再把2进制转换成16进制就容易多了,从后往前每4位截断一下,最前面不足位用0...

C#如何把BYTE数组中的数转换成16进制
using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication3 { class Program { static void Main(string[] args){ byte[] b = {12,10,1,17};for (int i = 0; i < b.Length; i++){ string a =Convert.ToString(b[i], 16);Console.WriteLine("O"...

“C#”如何把字符串转化为十六进制的ASCII码?
输入代码。十六进制批量转ASCII,代码如下:private void button1_Click(object sender,EventArgs e){ textBox2.Text= HexStringToASCII(textBox1.Text);}\/\/\/ \/\/\/ 将一条十六进制字符串转换为ASCII\/\/\/ \/\/\/ 一条十六进制字符串\/\/\/ <returns>返回一条ASCII码<\/returns>public static string HexStrin...

C# Tips:进制转换
进制转换在编程中通常表现为字符串之间的转换。在C#中,通过适当的方法,可以实现进制转换。例如:以二进制形式转换为字符串:以十六进制形式转换为字符串:转换后得到的字符串应被视为字符串,而非数字,以避免混淆。在处理进制转换时,应根据实际需求选择正确的转换方法。通过适当的方式,可以实现数的进制...

c#字母和数字 转换层二进制
下面这个程序中的ToBinaryString(string s)方法,将字符串转换成16进制格式 using System;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string password = "123abc"; string b = ToBinaryString(s); Console.WriteLine(b...

C# 将10进制数转化为16进制数
十进制整数转换为十六进制整数采用"除16取余,逆序排列"法。具体做法是:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为十六进制数的低位有效位,后得到的余数作为十六进制数的高位有效位,依次排列起来。例如:int...

c#中如何对串口发送16进制数据,如何接收16进制数据
忘了看你还要把接收的转回10进制。接收的如果是按字节接收(ReadByte),那么接收回来的数直接就可以用10进制表示,如果需要显示,可以直接在变量之后加.ToString();不明白可直接加我HI --- 之前的回答 byte[] t = new byte[2];t[0] = 0xAA;t[1] = 0xBB;串口对象.Write(t,0,2);其中3个...

...转换成16进制,再转为10进制的,最终目的要转为10进制 ..._百度知 ...
string ascII = null;ASCIIEncoding asc = new ASCIIEncoding();string[] nums = txt16.Split(' ');byte[] ByteArray = new byte[nums.Length];int k = 0;for (int i = 0; i < nums.Length; i++){ int num = int.Parse(nums[i], System.Globalization.NumberStyles.HexNumber);resu...

相似回答