【问题标题】:How to read bytes as string [duplicate]如何将字节读取为字符串[重复]
【发布时间】:2016-08-02 05:27:50
【问题描述】:

我正在尝试读取字节。

字节: 0x83 0xF6

这些字节等于 33782。 我需要一个代码来将这些字节转换为 33782。

我已尝试使用此代码:

Encoding.ASCII.GetString(new byte[] { 0x83, 0xF6 });

但它给出了这个作为回应:??

【问题讨论】:

    标签: c#


    【解决方案1】:

    你使用了错误的转换,用 ASCII 字符串转换这个字节数组不会给出正确的结果。你得到的原因??是因为值 0xF6、0x83 位于用于在您的情况下进行转换的 ASCII 表之外。

    你应该使用 BitConverter.ToUInt16()

       var number = BitConverter.ToUInt16(new byte[] { 0xF6, 0x83}, 0).ToString(); 
    

    虽然对于 Little/Big Endians,您必须先反转字节数组。

    【讨论】:

    • var bytes = new byte[] {0x83, 0xF6}; Array.Reverse(bytes); 这样的东西应该可以工作
    • 谢谢兄弟的帮助
    【解决方案2】:

    也许是这个?

    (0x83 * 256 + 0xF6).ToString()
    

    【讨论】:

    • 你能把它变成一个字符串,比如私有字符串吗?所以它返回它
    • 你是这个意思? private string foo = (0x83 * 256 + 0xF6).ToString();
    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多