如何用C语言实现两个16进制数的异或

如何用C语言实现两个16进制数的异或,第1张

C语言中,乱正森异或运算符是^。

不管运算对象是10进制的数还是16进制的数(或其他进制的数),进行^运算时,都是将运清缓算对象转换为二进制,按位进行异或运算。

举例说明如下:

int

a=0x9a,

b=0x56

int

c

=

a^b

//

将a和b进行异或运算

运算过程是

a

=

1001

1010

//

0x9a

b

=

0101

0110

//

0x56

c

=

1100

1100

//

0xcc

(对应的二进制位进行异或运算)

输出的时候可以按16进制输哗亩出,如:

printf("%x",

c)

异或是一个数学运算符。它应用于逻辑运算。

在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,洞亮判真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为纳改假。

在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。

异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带键握进位。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8284847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存