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