我正在尝试编写一个将ASCII文本转换为十六进制值的程序。问题是我正在使用一个项目,该项目使用与标准不同的ASCII字符的十六进制值,因此我必须将预定义的字符集(使用'静态字典')合并到转换中。
我的目的是让它设置2个文本框,一个用于输入ASCII输出,另一个用于打印十六进制值。
如果我输入ASCII字符串" Jack",我希望窗口返回4b 62 64 6c。 (是的,所有十六进制值都移一,不要问......不是我的电话)
我不确定如何执行此操作并强制它使用静态字典定义的值。
答案 0 :(得分:1)
将字典定义为Dictionary<char, int>
,并将每个char
作为关键字,将修改后的十六进制值设为value
。
转换时,只需在字典中查找十六进制值即可。
var x = MyStrangeHexValuesThatWeShouldntAskAbout[myChar];
答案 1 :(得分:1)
此解决方案仅适用于ASCII字符:
public static string ToMySpecialAsciiString(string input)
{
StringBuilder result = new StringBuilder();
foreach (char c in input)
result.AppendFormat("{0:x2} ", c + 1);
return result.ToString();
}
请注意,字符ÿ将无法正常工作(因为它的值为255,并且向其添加1将溢出一个字节)。但是,由于您只指定了ASCII,因此该字符永远不会出现。