0

私は、この正確な関数を、それが入っている言語 (Java だと思います) から C# に変換しようとしています。

String hex_chr = "0123456789abcdef";
private String numToHex(int num) {
    String str = "";
    for (int j = 0; j <= 3; j++) {
        str += "" + hex_chr.charAt((num >> (j * 8 + 4)) & 15) + "" + hex_chr.charAt((num >> (j * 8)) & 15);
    }
    return str;
}
4

2 に答える 2

4

正確な翻訳を探している場合は、それを char 配列として処理するだけです。メソッドを使用するかToCharArray()、文字列に直接インデックスを付けることができます。

String hex_chr = "0123456789abcdef";
private String numToHex(int num)
{
    String str = "";
    for (int j = 0; j <= 3; j++)
    {
        str += "" + hex_chr[(num >> (j * 8 + 4)) & 15] + "" + hex_chr[(num >> (j * 8)) & 15];
    }
    return str;
}

.ToString("X")HighCore が提案した呼び出しをそのまま使用したい場合もありますが、これには、コードが生成する文字列に存在する末尾のゼロが含まれないことに注意してください。

同様に、Java でこれを簡単に行うには、コードで を呼び出す必要がありますInteger.toHexString()

于 2013-10-25T23:13:17.517 に答える
1

.Net Framework にはそのための組み込み関数があり、プロジェクトに醜くて保守不可能なコードを含める必要はありません。

この例では、拡張メソッドと呼ばれる C# の機能を利用しています。

public static class IntExtensions
{
    public static string ToHex(this int value)
    {
       return value.ToString("X");
    }
}

使用法:

var myinteger = 10;
Console.WriteLine(myinteger.ToHex()); //Outputs "A"

- また -

Console.WriteLine(255.ToHex()); //Outputs "FF"
于 2013-10-25T22:45:56.243 に答える