c#的异或运算符问题

int a = 5;
int b = 30;
Console.WriteLine(a^b);
Console.ReadKey(); 输出结果是27 想知道这个异或运算符是什么计算的?

你好。异或是按照二进制来计算的。
5的二进制是
0000 0101
30的二进制是
0001 1110

而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1。所以应该列式:
0000 0101
0001 1110
--------------
0001 1011

就得到了 0001 1011。这个二进制表示的十进制数是27。
所以最后得到了27。

谢谢采纳。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-10

这个很简单哈...是根据二进制来算的...二进制你懂吧..

5 -> 00101
30-> 11110
=    11011

懂了吧...也就是说,两者对应的"位"是否相异(就是不相同嘛),也就是说,如果他们都为 "1",或都为 "0"都是不符合的..其他情况都是符合..符合结果就是1嘛..

c#的异或运算符问题
你好。异或是按照二进制来计算的。5的二进制是 0000 0101 30的二进制是 0001 1110 而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1。所以应该列式:0000 0101 0001 1110 --- 0001 1011 就得到了 0001 1011。这个二进制表示的十进制数是27。所以最后得到了27。谢谢...

c#字符串异或的问题
using System.Text;using System;namespace ConsoleTest{ public class Test{ static public void Main(String []args){ string s = "abcd"; StringBuilder b = new StringBuilder(); for (int i = 0; i < s.Length; i++) { b.Append(s[i] ^ 'k'); } C...

c#中逻辑异或问题
ch1中的值的二进制码与key的二进制码按位取异或,然后得出的二进制码在转换成字符型输出

c#用异或加密算法的一点问题
如果用Encoding.TF8.GetBytes(string)要比使用Default好的多,这样同时也可以加密汉字了!一般考虑密文的长度要比key长,如果是相反的情况下,可以只加密部分的。也就是说,如果密文长度是1,其实只使用了一位密码。(如果不采取被0的情况),显然会引发弱密码的情况。而且,按你的这种加密方式,如果密文...

C#中^是什么符号?
在C#编程语言中,^符号扮演着独特的角色,即按位异或运算符。这个运算符主要用于对整型数据的二进制位进行精确的操作。它的工作原理是,当两个操作数进行异或运算时,它会逐位比较,如果两个对应位置上一个是1,另一个是0,结果位就为1;如果两个都是1或都是0,结果位就为0。例如,0000000010111111...

C#中^是什么符号?
C#中^是按位异或运算符(用于对数据的位进行操作),它表示的含义是逐位非或,要求两个整型操作数。从最小(即最右)的位开始,对操作数逐位操作;如果只有其中一个位为1,那么结果为1;否则为0。例如: 0000 0000 1011 1111^ 0000 1111 0101 1111为0000 1111 1110 0000。

c# VS求异或校验和的问题
回答:1)Encoding.ASCII.GetBytes(……)得到字节数组,数组中的每个元素在计算机内部都是以二进制格式存储的(其实计算机内存中所有类型的数据都是以二进制格式存储的!) 2)可以用10进制、16进制来表达或输出这些二进制数据 3)C#的异或操作是基于二进制按位操作 ----- 不知道你XOR校验和的具体算法...

C#中a 为false,b 为false,则逻辑运算a&&b以及a&b均为true?是不是书上...
就是说两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0.所以你上面说的都是错误的,看书要有怀疑,尽信书则不如无书。祝你学业有成 追问 我验证了一下,上面的这个a为false,b 为false,则逻辑运算a&&b以及a&b均为true 这句是对的;下面的那个异或是错的。。。对的那句有些想不明白啊,怎...

C# ^= 是什么意思
^=是异或的意思 a^=b<=>a=a^b;功能:就是相同的为1,不同的为0(数字要化为二进制来算)例如:true^true =false;true^false=true;false^false=false;例如:int a=1^2;此时a=3;算法过程:1二进制01;2二进制10 01^10=11;\/\/就是相同为1,不同位 int b=7^3;7 111;^ 3 ...

C#中c[i]^key是什么意思
按位异或运算符。和加比较类似,但不会进位。对应位异或:0和0为0 1和1为0 0和1或者1和0为1 比如0110^1101 = 1011,用十进制表示就是6^13 = 11 异或有一个比较优秀的特性,两次异或同一个数字,原本数字不变 0110^1101 = 1011 1011^1101 = 0110 看你程序,应该是用异或来进行简单...

相似回答