异或怎么计算
1个回答
展开全部
问题一:异或操作具体是怎样计算的? 说白了就是相同为假,不同为真
1^1=0 0^0=0
1^0=1 0^1=1
举个例子:有道经典的题�a和b不通过第三个变量来交换值;
int a=2,b=5;
a=a^b;
b=a^b;
a=a^b;
楼主试一下就明白了。
问题二:java中异或是怎样算的 异或这些位运算都是针对二珐制的。
i的二进制为110010.
j的二进制为111100.
110010
111100
001110=>这就是结果了。最后转换为十进制 14
一位一位的看,异或是相同为0 不同为1.
问题三:异或的运算法则 1. a � a = 02. a � 0 = a3. a � b = b � a4. a �b � c = a � (b � c) = (a � b) � c;5. d = a � b � c 可以推出 a = d � b � c.6. a � b � a = b.7.若x是二进制数0101,y是二进制数1011则x�y=1110只有在两个比较的位不同时其结果是1,否则结果为0即“两个输入相同时为0,不同则为1”! 输入 运算符 输入 结果 1 � 0 1 1 � 1 0 0 � 0 0 0 � 1 1
问题四:怎样计算异或值? 仅仅使用计算符号“^”
问题五:excel如何计算数值XOR? 在需要计算异或值的地方写上如下公式:
=BIN2HEX(SUBSTITUTE(HEX2BIN(B1)+HEX2BIN(B2),2,0),2)
此外,为了更方便操作和更好理解,可以用名称管理器(CTRL+F3)来添加一个名称如下图:
请注意看A3的公式可以直接写=XOR,将直接计算A1和A2的异或值,同样,B3和C3也可以直接写=XOR,计算的分别是B1异或B2和C1异或C2。
说一下思路:
HEX2BIN和BIN2HEX函数都很好理解,先把16进制转成2进制,然后相加,若两个数某位相同(同为1或周为0)则相加后该位变成2或0,根据XOR运算法则,将2变成0即可(0不用变)。若某位不同则相加后此位必为1,根据XOR运算法则也应是1,不用额外操作。所以用SUBSTITUTE函数把相加的和中所有的2替换为0,其结果就是两个单元格XOR操作结果的2进制形式了,再用BIN2HEX函数把它转换回十六进制即可,后面带了一个参数“2”表示用2位字母(或数字)来表示这个16进制数。
问题六:怎样计算异或校验和 #include
void main ()
{
char a[]=$GPGGA,085014.955,2839.2050,N,11549.5721,E,1,04,03.6,76.6,M,-6.2,M,,*4C;
int i,result;
for(result=a[1],i=2;a[i]!='*';i++)
{
result^丹a[i];
}
printf(result = %x\n,result);
}
运行结果为:4c
问题七:四个变量的异或怎么算a异或b异或c异或d 先算a异或b,得出来的结果与c异或,再得出一个结果与d异或。
比如,1异或0异或1异或0:1异或0结果是1,1异或1结果是0,0异或0结果是0.
11异或10异或10异或11:两位2进制数相异或,是每一位分别进行异或计算。比如是11异或10,计算的时候前11的最后一位1与10的0相异或,得1;11的高位1与10的高位1异或,得0,所以11异或10得01.然后计算01异或10,得11,11异或11,得00.
问题八:C语言中1^8怎么算?^是按位异或运算符 1和8都是int型,且都是正整数,内存中原码形式存储
1的原码是00000000 00000000 00000000 0000001
8的原码是00000000 00000000 00000000 0001000
按位异或,顾名思义是对应的二进制位计算,口诀相同0,相异为1.就是对应的二进制位,相同的话该二进制位计算出来是0,不同的话计算出来才是1
举例: 0
^ 0
-----
0
***************
1
^1
---------
0
************
0
^1
------------
1
**************************************
所以
00000000 00000000 00000000 0000001
^00000000 00000000 00000000 0001000
----------------------------------------------------
00000000 00000000 00000000 0001001
这个二进制数按照原码解释,对应9
所以结果是9
问题九:异或操作具体是怎样计算的? 说白了就是相同为假,不同为真
1^1=0 0^0=0
1^0=1 0^1=1
举个例子:有道经典的题�a和b不通过第三个变量来交换值;
int a=2,b=5;
a=a^b;
b=a^b;
a=a^b;
楼主试一下就明白了。
问题十:java中异或是怎样算的 异或这些位运算都是针对二珐制的。
i的二进制为110010.
j的二进制为111100.
110010
111100
001110=>这就是结果了。最后转换为十进制 14
一位一位的看,异或是相同为0 不同为1.
1^1=0 0^0=0
1^0=1 0^1=1
举个例子:有道经典的题�a和b不通过第三个变量来交换值;
int a=2,b=5;
a=a^b;
b=a^b;
a=a^b;
楼主试一下就明白了。
问题二:java中异或是怎样算的 异或这些位运算都是针对二珐制的。
i的二进制为110010.
j的二进制为111100.
110010
111100
001110=>这就是结果了。最后转换为十进制 14
一位一位的看,异或是相同为0 不同为1.
问题三:异或的运算法则 1. a � a = 02. a � 0 = a3. a � b = b � a4. a �b � c = a � (b � c) = (a � b) � c;5. d = a � b � c 可以推出 a = d � b � c.6. a � b � a = b.7.若x是二进制数0101,y是二进制数1011则x�y=1110只有在两个比较的位不同时其结果是1,否则结果为0即“两个输入相同时为0,不同则为1”! 输入 运算符 输入 结果 1 � 0 1 1 � 1 0 0 � 0 0 0 � 1 1
问题四:怎样计算异或值? 仅仅使用计算符号“^”
问题五:excel如何计算数值XOR? 在需要计算异或值的地方写上如下公式:
=BIN2HEX(SUBSTITUTE(HEX2BIN(B1)+HEX2BIN(B2),2,0),2)
此外,为了更方便操作和更好理解,可以用名称管理器(CTRL+F3)来添加一个名称如下图:
请注意看A3的公式可以直接写=XOR,将直接计算A1和A2的异或值,同样,B3和C3也可以直接写=XOR,计算的分别是B1异或B2和C1异或C2。
说一下思路:
HEX2BIN和BIN2HEX函数都很好理解,先把16进制转成2进制,然后相加,若两个数某位相同(同为1或周为0)则相加后该位变成2或0,根据XOR运算法则,将2变成0即可(0不用变)。若某位不同则相加后此位必为1,根据XOR运算法则也应是1,不用额外操作。所以用SUBSTITUTE函数把相加的和中所有的2替换为0,其结果就是两个单元格XOR操作结果的2进制形式了,再用BIN2HEX函数把它转换回十六进制即可,后面带了一个参数“2”表示用2位字母(或数字)来表示这个16进制数。
问题六:怎样计算异或校验和 #include
void main ()
{
char a[]=$GPGGA,085014.955,2839.2050,N,11549.5721,E,1,04,03.6,76.6,M,-6.2,M,,*4C;
int i,result;
for(result=a[1],i=2;a[i]!='*';i++)
{
result^丹a[i];
}
printf(result = %x\n,result);
}
运行结果为:4c
问题七:四个变量的异或怎么算a异或b异或c异或d 先算a异或b,得出来的结果与c异或,再得出一个结果与d异或。
比如,1异或0异或1异或0:1异或0结果是1,1异或1结果是0,0异或0结果是0.
11异或10异或10异或11:两位2进制数相异或,是每一位分别进行异或计算。比如是11异或10,计算的时候前11的最后一位1与10的0相异或,得1;11的高位1与10的高位1异或,得0,所以11异或10得01.然后计算01异或10,得11,11异或11,得00.
问题八:C语言中1^8怎么算?^是按位异或运算符 1和8都是int型,且都是正整数,内存中原码形式存储
1的原码是00000000 00000000 00000000 0000001
8的原码是00000000 00000000 00000000 0001000
按位异或,顾名思义是对应的二进制位计算,口诀相同0,相异为1.就是对应的二进制位,相同的话该二进制位计算出来是0,不同的话计算出来才是1
举例: 0
^ 0
-----
0
***************
1
^1
---------
0
************
0
^1
------------
1
**************************************
所以
00000000 00000000 00000000 0000001
^00000000 00000000 00000000 0001000
----------------------------------------------------
00000000 00000000 00000000 0001001
这个二进制数按照原码解释,对应9
所以结果是9
问题九:异或操作具体是怎样计算的? 说白了就是相同为假,不同为真
1^1=0 0^0=0
1^0=1 0^1=1
举个例子:有道经典的题�a和b不通过第三个变量来交换值;
int a=2,b=5;
a=a^b;
b=a^b;
a=a^b;
楼主试一下就明白了。
问题十:java中异或是怎样算的 异或这些位运算都是针对二珐制的。
i的二进制为110010.
j的二进制为111100.
110010
111100
001110=>这就是结果了。最后转换为十进制 14
一位一位的看,异或是相同为0 不同为1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询