C# 从位字符串转换为整数

C# 从位字符串转换为整数,c#,bit-manipulation,C#,Bit Manipulation,我需要一个函数,比如 int-GetIntegerFromBinaryString(字符串二进制,int位计数) 如果binary=“01111111”且bitCount=8,则应返回127 如果binary=“10000000”且bitCount=8,则应返回-128 数字以2的补码形式存储。我该怎么做呢。是否有任何内置函数可以帮助我不需要手动计算。在字符串前面加上0或1以弥补位计数并执行 int number=Convert.ToInt16(“11111111”+“10000000”,2)给

我需要一个函数,比如

int-GetIntegerFromBinaryString(字符串二进制,int位计数)

如果binary=“01111111”且bitCount=8,则应返回127

如果binary=“10000000”且bitCount=8,则应返回-128


数字以2的补码形式存储。我该怎么做呢。是否有任何内置函数可以帮助我不需要手动计算。

在字符串前面加上0或1以弥补位计数并执行
int number=Convert.ToInt16(“11111111”+“10000000”,2)

给你

    static int GetIntegerFromBinaryString(string binary, int bitCount)
    {
        if (binary.Length == bitCount && binary[0] == '1')
            return Convert.ToInt32(binary.PadLeft(32, '1'),2);
        else
            return Convert.ToInt32(binary,2);
    }

将其转换为32位数字的2-s补码版本,然后简单地让Convert.ToInt32方法发挥其神奇作用

比特数有任何界限吗?例如,如果它在“100000000”上返回-256且比特数=9,是否可以假定比特数将始终为?@Valentin Kuzub是的,这正是我想要的。@deepee bitCount将为@ajay haha是的,没有注意到有答案突然出现+我也祝你好运;P