我想将二进制文件翻转为1
或0
。例如,我有二进制文件101
,输出应为010
。我一直在尝试遍历数组并更改值,但输出始终为0, 000, 0000, 00
。
这是我正在使用的代码:
static void Main(string[] args)
{
Console.Write("Input Binary: ");
String x = Console.ReadLine();
char[] bin = x.ToCharArray();
int[] nbin = new int[bin.Length];
for (int i = 0; i < bin.Length; i ++)
{
int a = bin[i];
if(a == 0)
{
nbin.SetValue(1, i);
}
if(a == 1)
{
nbin.SetValue(0, i);
}
}
foreach (var e in nbin)
{
Console.Write(e);
}
Console.Read();
}
答案 0 :(得分:3)
答案 1 :(得分:3)
为什么不在没有数组的情况下使用字符串中的字符?
String x = "101";
String result = string.Concat(x.Select(c => c == '0' ? '1' : '0'));
// 010
Console.Write(result);
答案 2 :(得分:0)
您以字符串形式读取数据,然后将其转换为char
数组。 char
表示给定字符的代码点。 字符 0
具有代码点48,如果您使用'0'
字面值,则只有char
,而不是数字 0。
你应该与角色进行比较:
if(a == '0')