我有一个我认为很容易的问题。出于某种原因,以下代码会生成异常“字符串必须恰好是一个字符长”。
int n = 0;
foreach (char letter in charMsg)
{
// Get the integral value of the character.
int value = Convert.ToInt32(letter);
// Convert the decimal value to a hexadecimal value in string form.
string hexOutput = String.Format("{0:X}", value);
//Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
charMsg[n] = Convert.ToChar(hexOutput);
n++;
}
异常发生在该charMsg[n] = Convert.ToChar(hexOutput);
行。为什么会这样?当我检查它的值时,CharMsg
它似乎正确地包含了所有这些值,但仍然向我抛出错误。
更新:我已经解决了这个问题,这是我的错误。对不起,打扰你。
好吧,这对我来说是一个非常愚蠢的错误。关键是,对于我的问题,我什至不应该这样做,因为十六进制值显然不会以任何方式帮助我。
我试图做的是加密图像中的消息。我已经在第一个像素的每个颜色通道的最后一位数字中加密了所述消息的长度。现在我正试图把这个信息放在那里。我在这里查看:http ://en.wikipedia.org/wiki/ASCII并对自己说,没有想到使用 hexes 是个好主意。不敢相信我是这么想的。