gpt4 book ai didi

c# - 如何在 C# 中将常规字符串转换为 ASCII 十六进制字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:55 25 4
gpt4 key购买 nike

我最近在做一个项目,我需要将常规数字字符串转换为 ASCIII 十六进制并将十六进制存储在字符串中。

所以我有类似的东西

string random_string = "4000124273218347581"

我想把它转换成十六进制的字符串形式

string hex_string = "34303030313234323733323138333437353831"

这似乎是一项奇怪的特定任务,但它是我遇到的,当我试图找出如何执行它时,我无法在网上找到任何答案。

无论如何,我弄清楚了并创建了一个类来使我的代码更整洁。

如果其他人需要将常规字符串转换为十六进制字符串,我会马上发布一个包含我的解决方案的答案。

(我是 stackoverflow 的新手,所以我希望这样做没问题)

=========================================

事实证明,由于没有足够高的声誉,我无法在提问的前 8 小时内自己回答我的问题。

所以我把我的答案贴在这里:

好的,这是我的解决方案:

我在命名空间中创建了一个名为 StringToHex 的类

public class StringToHex
{
private string localstring;
private char[] char_array;
private StringBuilder outputstring = new StringBuilder();
private int value;

public StringToHex(string text)
{
localstring = text;
}

public string ToAscii()
{
/* Convert text into an array of characters */
char_array = localstring.ToCharArray();
foreach (char letter in char_array)
{
/* Get the integral value of the character */
value = Convert.ToInt32(letter);

/* Convert the decimal value to a hexadecimal value in string form */
string hex = String.Format("{0:X}", value);

/* Append hexadecimal version of the char to the string outputstring*/
outputstring.Append(Convert.ToString(hex));
}
return outputstring.ToString();
}
}

要使用它,您需要执行以下操作:

/* Convert string to hexadecimal */
StringToHex an_instance_of_stringtohex = new StringToHex(string_to_convert);
string converted_string = an_instance_of_stringtohex.ToAscii();

如果它正常工作,转换后的字符串应该是原始字符串长度的两倍(由于十六进制使用两个字节来表示每个字符)。

现在,正如有人已经指出的那样,您可以在这里找到一篇做类似事情的文章:

http://www.c-sharpcorner.com/UploadFile/Joshy_geo/HexConverter10282006021521AM/HexConverter.aspx

但我没有发现它对我的特定任务有多大帮助,我想我的解决方案更优雅 ;)

最佳答案

只要字符串中的字符代码不大于 255 (0xFF),此方法就有效:

string hex_string =
String.Concat(random_string.Select(c => ((int)c).ToString("x2")));

注意:这也适用于 16 (0x10) 以下的字符代码,例如它将从换行符 "\r\n" 而不是 "DA" 生成十六进制代码 "0D0A"

关于c# - 如何在 C# 中将常规字符串转换为 ASCII 十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com