私は簡単な問題だと思うものを持っています。何らかの理由で、次のコードは「文字列は正確に 1 文字の長さでなければなりません」という例外を生成します。
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
、それらすべてが適切に含まれているように見えますが、それでもエラーがスローされます。
更新:私はこの問題を解決しました。それは私の間違いでした。お邪魔になってすみません。
わかりました、これは私の側の本当にばかげた間違いでした。ポイントは、私の問題では、16進値が明らかに私を助けないので、これを行うことさえ想定されていないということです。
画像内のメッセージを暗号化するために私がやろうとしていること。最初のピクセルの各カラーチャネルの最後の桁で、メッセージの長さを既に暗号化しています。今、私はまさにそこにメッセージを入れようとしています。私はここを見ました:http://en.wikipedia.org/wiki/ASCIIそして、ヘックスを使用するのが良い考えだとは思わずに自分自身に言いました。そう思ったなんて信じられない。