【求助】:按位异或运算,如何显示 8 位二进制值?——欲重验按位异或,无奈长串数字一
大侠们好:我在自学C#位运算,当学到按位异或运算时,出现了一个困惑。情况如下:
(1)代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace weiyuansuan
{
class Program
{
static void Main(string[] args)
{
int x = 6, y = 10;
string strx = Convert.ToString(x, 2); //十进制转为二进制
string stry = Convert.ToString(y, 2);
Console.WriteLine("x的二进制值={0,8},x的十进制值={1} \ny的二进制值={2,8},y的十进制值={3}", strx, x, stry, y);
Console.WriteLine();
int z = ~x;//按位取反
string strz = Convert.ToString(z, 2);
Console.WriteLine("z的二进制值={0,8} \nz的十进制值={1}", strz, z);
Console.WriteLine();
Console.Read();
}
}
}
(2)运行结果
X的二进制值= 110,X的十进制值=6
Y的二进制值= 1010,Y的十进制值=10
Z的二进制值=11111111111111111111111111111001
Z的十进制值=-7
(3)我的困惑——关于Z的值
我想要的结果是:Z的二进制值=11111001 ,即8位;
Z的十进制值=249(128+64+32+16+8+0+0+1)
我的困惑是:这是怎么回事?我不太明白。我该如何解决这个问题?请高手们帮忙。谢谢!