C语言中1^8怎么算?^是按位异或运算符
2个回答
展开全部
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的原码是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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询