私の現在の割り当ては、異なるシステムにコンバータを書き込むことです。 バイナリへの変換は問題ありませんでしたが、私は16進数でいくつかの問題を抱えています。ここに私のコードです:ベース変換ツールの作成と16進数の問題
public string[] ConvertInput(int pInput, int pBase)
{
List<string> Output = new List<string>();
int Tmp = pInput;
int TmpBin;
for (int i = 0; Tmp > 0; i++)
{
TmpBin = Tmp % pBase;
Tmp = Tmp/pBase;
if (TmpBin >= 10)
{
char c = (char)TmpBin;
Output.Add(c.ToString());
}
else
{
Output.Add(TmpBin.ToString());
}
}
string[] OutArray = Output.ToArray();
Array.Reverse(OutArray);
return OutArray;
}
私は16進数に数15555
を変換しようとするのであれば、それは3cc3
バックを与える必要がありますが、何それがないと、3\f\f3
を返すことです。
どうしたのですか?これに代えて
バイナリ値をcharにキャストしています。バイナリ値を 'A'から 'F'の範囲の文字に正しく変換していません。 –
ところで、あなたは文字列の配列を取り除くことができますし、ちょうど1つの文字列でそれをすべて行います。しかし、あなたは逆のストリングメソッドが必要になります。 http://stackoverflow.com/a/228060/49251を参照してください。ですから、出力宣言 'string Output =" "'でそれを行うことができます。 'Output + = c.ToString();'などで追加します。その後、文字列を参照してメソッドが文字列を返すようにします。 – DWright
@Raphnika:あなたの質問を編集して最後に「ありがとう」を追加しているのを見ました。ここでの一般的なコンセンサスはあなたの投稿から何か「感謝」を省略することです。テクニカルライティングとしての質問と回答を考えてみましょう。厳しいように見えるかもしれませんが、意味がありません。適切なときに受諾または上書きすることにより、回答者に感謝します。 –