如何在 C# 中对字符串进行按位运算
例子
string sr1="0101110";
string sr2="1101110";
sr1 & sr2="0101110";
或
sr1 | sr2="1101110";
我怎样才能进行这样的比较?
注意字符串长度固定为 1440 个字符
这是我肮脏的解决方案
private string compareBitWiseAnd(string sr1, string sr2)
{
char[] crArray1 = sr1.ToCharArray();
char[] crArray2 = sr2.ToCharArray();
StringBuilder srResult = new StringBuilder();
for (int i = 0; i < crArray1.Length; i++)
{
if (crArray1[i] == crArray2[i])
{
srResult.Append(crArray1[i]);
}
else
{
srResult.Append('0');
}
}
return srResult.ToString();
}
private string compareBitWiseOr(string sr1, string sr2)
{
char[] crArray1 = sr1.ToCharArray();
char[] crArray2 = sr2.ToCharArray();
StringBuilder srResult = new StringBuilder();
for (int i = 0; i < crArray1.Length; i++)
{
if (crArray1[i] == '1' || crArray2[i] == '1')
{
srResult.Append("1");
}
else
{
srResult.Append('0');
}
}
return srResult.ToString();
}
最佳答案
Convert先到实际位,然后再进行按位比较。
int num1 = Convert.ToInt32(sr1, 2);
int num2 = Convert.ToInt32(sr2, 2);
int result = num1 & num2;
使用this如果您想从 result
中获取二进制字符串。
关于c# - 字符串的按位运算 - 1440 个字符长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096409/