0

我希望在 C# 中编写 Oracle 函数 rawtohex。我正在查看已编写的现有代码,并希望确认它是否准确。

public static string AsHexString1(this char[] chars)
{
    StringBuilder sb = new StringBuilder();

    foreach (var ch in chars)
    {
        int lowNibble = (int)ch % 16;
        int highNibble = (int)ch / 16;

        sb.Append(highNibble <= 9 ? highNibble.ToString() : ((char)('A' + (highNibble - 10))).ToString());
        sb.Append(lowNibble <= 9 ? lowNibble.ToString() : ((char)('A' + (lowNibble - 10))).ToString());
    }

    return sb.ToString();
}

谢谢。

4

1 回答 1

4

据我所知,RawToHex应该是这样的:

public static string RawToHex(byte[] data)
{
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < data.Length; i++)
        sb.AppendFormat("{0:X2}", data[i]);
    return sb.ToString();
}

我不确定你为什么使用char数组作为输入,因为它是 RAW 数据......

于 2012-11-20T08:45:57.440 回答