c# - 如何将二进制补码形式的字节转换为其整数值? C#

标签 c#

给定一个二进制补码形式的字节,我试图将该字节转换为它的十进制表示形式。例如 byte 10000000 我需要转换为 -128byte 01111111 我需要转换为 127。我看过这个answer ,但我没有成功地采用其中一个答案并使其对我有用。

我该如何进行转换?

澄清:我正在尝试将二进制补码形式的 byte 转换为 int 而不是二进制值的 string 表示进入一个`int。

最佳答案

public static int ConvertTwosComplementByteToInteger(byte rawValue)
{
    // If a positive value, return it
    if ((rawValue & 0x80) == 0)
    {
        return rawValue;
    }

    // Otherwise perform the 2's complement math on the value
    return (byte)(~(rawValue - 0x01)) * -1;
}

关于c# - 如何将二进制补码形式的字节转换为其整数值? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567214/

相关文章:

c# - 并行调整图像大小导致内存不足异常

c# - 如何让 VSCode 主题识别 C# 接口(interface)?

c# - 在 linq c# 中使用 where 条件对列表进行排序

c# - 在另一个面板上显示控件

c# - 通过 Windows Azure 发布后无法加载文件或程序集 System.Runtime.Serialization

c# - Azure 网站上的 SQLXML

c# - 通过 XPath 和 HtmlAgilityPack 获取属性值

c# - 如何实现递归回调模式?

c# - LINQ to Entities 无法识别方法 'System.String ToString(Int32)' 方法,并且无法将此方法翻译成存储表达式

c# - .Net 测试项目的用户特定数据和 secret 数据存储在哪里?