如何将string表示的16十六进制数字转换成其所代表的二进制数据

Faitle 2008-04-24 11:08:50
比如
string = "A0 CC 10 1A";
转换成
1010 0000 .......
这样的二进制?

谢谢
...全文
314 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Faitle 2008-04-24
  • 打赏
  • 举报
回复
先谢谢各位了
刚开始用c sharp

待会有空了给分 :)
viena 2008-04-24
  • 打赏
  • 举报
回复
每次两位截取字符串,转换即可
王集鹄 2008-04-24
  • 打赏
  • 举报
回复
参考如下代码:
private string HexToBin(string AHex)
{
AHex = AHex.ToLower().Replace(" ", "");
StringBuilder result = new StringBuilder(AHex.Length * 4);
foreach (char c in AHex)
{
int i = "0123456789abcdef".IndexOf(c);
if (i >= 0)
{
string s = Convert.ToString(i, 2);
result.Append(" 000".Substring(0, 5 - s.Length) + s);
}
}
return result.ToString().Trim();
}

private void button2_Click(object sender, EventArgs e)
{
string s = "A0 CC 10 1A";
MessageBox.Show(HexToBin(s));
}
h_w_king 2008-04-24
  • 打赏
  • 举报
回复
string ss=Convert.ToString((Convert.ToInt32("aa", 16)), 2));
lake_cx 2008-04-24
  • 打赏
  • 举报
回复
            string s = "A0 CC 10 1A";
s = s.Replace(" ", "");
int n = int.Parse(s, NumberStyles.HexNumber);
MessageBox.Show(Convert.ToString(n, 2));
ericzhangbo1982111 2008-04-24
  • 打赏
  • 举报
回复
这个函数负责将字符转换成十六进制

public string Data_Hex_Asc(ref string Data)

{

string Data1 = "";

string sData = "";

while (Data.Length > 0)

//first take two hex value using substring.

//then convert Hex value into ascii.

//then convert ascii value into character.

{
Data1 = System.Convert.ToChar(System.Convert.ToUInt32(Data.Substring(0, 2), 16)).ToString();

sData = sData + Data1;

Data = Data.Substring(2, Data.Length - 2);

}
return sData;
}



Data_Asc_Hex(data)





这个函数负责将十六进制转换成字符

public string Data_Asc_Hex(ref string Data)
{
//first take each charcter using substring.
//then convert character into ascii.
//then convert ascii value into Hex Format
string sValue;
string sHex = "";
while (Data.Length > 0)
{
sValue = Conversion.Hex(Strings.Asc(Data.Substring(0, 1).ToString()));
Data = Data.Substring(1, Data.Length - 1);
sHex = sHex + sValue;
}
return sHex;
}

wsfl1 2008-04-24
  • 打赏
  • 举报
回复
支持3楼啊
王集鹄 2008-04-24
  • 打赏
  • 举报
回复
楼主你没考虑小写abcde的问题。。。
如下代码基本一样,不过用得是标准的TryParse()转换
public byte[] HexToBytes(string AHex)
{
AHex = AHex.Replace(" ", "");
if (AHex.Length <= 0) return null;
byte[] Result = new byte[AHex.Length / 2];
for (int i = 0; i < AHex.Length; i += 2)
if (!byte.TryParse(AHex.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber, null, out Result[i / 2]))
Result[i / 2] = 0;
return Result;
}
yhy0611 2008-04-24
  • 打赏
  • 举报
回复
学习了
Faitle 2008-04-24
  • 打赏
  • 举报
回复

public static byte[] StringToBinaries( string str ) {
str = str.Replace(" ", "");
byte[] binaries = new byte[str.Length / 2];
for (int i = 0; i < str.Length; ) {
byte b = ( byte )"0123456789ABCDEF".IndexOf( str[i++] );
b <<= 4;
b += (byte)"0123456789ABCDEF".IndexOf(str[i]);
binaries[ i / 2 ] = b;
i++;
}
return binaries;
}


我的意思是将一连串不定长的字符转换成binaries
这是我后来写的

111,125

社区成员

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

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

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