社区
新手乐园
帖子详情
我想请教一下,如何用两个整数异或,来判断两个整数是否相等。
taseaa
2010-04-28 09:55:42
我想请教一下,如何用两个整数异或,来判断两个整数是否相等。
...全文
961
25
打赏
收藏
我想请教一下,如何用两个整数异或,来判断两个整数是否相等。
我想请教一下,如何用两个整数异或,来判断两个整数是否相等。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
johnelf
2010-04-28
打赏
举报
回复
mao
我就看看。。
FingerStyle
2010-04-28
打赏
举报
回复
空格跟优先级 有毛的关系 = =
azure110
2010-04-28
打赏
举报
回复
用不着再 跟了..请自己尝试吧.
baihacker
2010-04-28
打赏
举报
回复
bitxinhai
2010-04-28
打赏
举报
回复
[Quote=引用 16 楼 classpatterns 的回复:]
引用 8 楼 bitxinhai 的回复:
引用 4 楼 baihacker 的回复:
引用 2 楼 bitxinhai 的回复:
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
e……
[/Quote]
请问大侠,你能把所有的运算符的优先级,一一的正确罗列出来吗???
FingerStyle
2010-04-28
打赏
举报
回复
[Quote=引用 8 楼 bitxinhai 的回复:]
引用 4 楼 baihacker 的回复:
引用 2 楼 bitxinhai 的回复:
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
……
[/Quote]
请问您是怎么到5个裤衩的。空格哪来的优先关系。
lylm
2010-04-28
打赏
举报
回复
谢谢,
请教一下,如何将它(A^b)的结果映射成0和1?
比如:
int c[2];
if(a==b){c[0]++;}
将a^b结果映射成0和1==》c[a^b];
>>a^b不能映射成1,a,b不相等时,a^b非0,但并不是1,可以下面这样
if ((a^b) == 0)
{
d=0;
}
else
{
d=1;
}
然后用d作数组下标
bitxinhai
2010-04-28
打赏
举报
回复
[Quote=引用 9 楼 baihacker 的回复:]
引用 8 楼 bitxinhai 的回复:
引用 4 楼 baihacker 的回复:
引用 2 楼 bitxinhai 的回复:
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
els……
[/Quote]
多谢,受教了。。。
taseaa
2010-04-28
打赏
举报
回复
[Quote=引用 12 楼 baihacker 的回复:]
!!(a^b)
[/Quote]
是
if(a==b){c[0]++;}else{c[1]++;} 换成异或==> c[!!(a^b)]++;
这样吗?
谢谢。
baihacker
2010-04-28
打赏
举报
回复
!!(a^b)
taseaa
2010-04-28
打赏
举报
回复
[Quote=引用 10 楼 baihacker 的回复:]
引用 7 楼 taseaa 的回复:
引用 6 楼 delphiwcdj 的回复:
引用 1 楼 baihacker 的回复:
if ((a^b) == 0)
{
相等;
}
else
{
不等;
}
相同的两个数异或为0
那不相同为1对吗?
感谢你的跟帖。
不相同,非零。
[/Quote]
谢谢,
请教一下,如何将它(A^b)的结果映射成0和1?
比如:
int c[2];
if(a==b){c[0]++;}
将a^b结果映射成0和1==》c[a^b];
baihacker
2010-04-28
打赏
举报
回复
[Quote=引用 7 楼 taseaa 的回复:]
引用 6 楼 delphiwcdj 的回复:
引用 1 楼 baihacker 的回复:
if ((a^b) == 0)
{
相等;
}
else
{
不等;
}
相同的两个数异或为0
那不相同为1对吗?
感谢你的跟帖。
[/Quote]
不相同,非零。
baihacker
2010-04-28
打赏
举报
回复
[Quote=引用 8 楼 bitxinhai 的回复:]
引用 4 楼 baihacker 的回复:
引用 2 楼 bitxinhai 的回复:
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
……
[/Quote]
空格和优先级无关。
bitxinhai
2010-04-28
打赏
举报
回复
[Quote=引用 4 楼 baihacker 的回复:]
引用 2 楼 bitxinhai 的回复:
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
注意运算优先级,关系运算是高于二元位运算的
[/Quote]
a1^a2 == 0
看清楚了,关键是==的前后都有一个空格的,难道这不影响这个表达式的运算优先级吗???
taseaa
2010-04-28
打赏
举报
回复
[Quote=引用 6 楼 delphiwcdj 的回复:]
引用 1 楼 baihacker 的回复:
if ((a^b) == 0)
{
相等;
}
else
{
不等;
}
相同的两个数异或为0
[/Quote]
那不相同为1对吗?
感谢你的跟帖。
delphiwcdj
2010-04-28
打赏
举报
回复
[Quote=引用 1 楼 baihacker 的回复:]
if ((a^b) == 0)
{
相等;
}
else
{
不等;
}
[/Quote]
相同的两个数异或为0
taseaa
2010-04-28
打赏
举报
回复
我Google了一下,好像是这样:
return ((a ^ b) == 0)
类似这样:
if(a==b){C++;}
如果使用异或来完成思路应该是怎样呢。
baihacker
2010-04-28
打赏
举报
回复
[Quote=引用 2 楼 bitxinhai 的回复:]
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
[/Quote]
注意运算优先级,关系运算是高于二元位运算的
z569362161
2010-04-28
打赏
举报
回复
[Quote=引用 1 楼 baihacker 的回复:]
if ((a^b) == 0)
{
相等;
}
else
{
不等;
}
[/Quote]
是这样的吗????????????????????
bitxinhai
2010-04-28
打赏
举报
回复
int a1 = 10,a2 = 10;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
a2 = 30;
if(a1^a2 == 0)
cout<<"="<<endl;
else
cout<<"!="<<endl;
加载更多回复(5)
leetcode双人赛-LeetCode:yiran'sleetcode
leetcode双人赛yiran的leetcode 位操作 简单的 0136 单号 0190 反向位 0191 1 位数 0231 两人的力量 0342 四次幂 0371
两个
整数
的和 0389 找不同 0401 二进制表 0405 将数字转换为十六进制 0461 汉明距离 0476 数字补码 0477 总汉明距离 0645 设置不匹配 0693 具有交替位的二进制数 0762 二进制表示中设置位的质数 0868 二进制间隙 1486 数组中的
异或
运算 1720 解码
异或
数组 中等的 0137 单号II 0187 重复的 DNA 序列 0201 数字范围的按位与 0260单号III 0318 字长的最大乘积 0338 计数位 0421 数组中
两个
数的最大
异或
1310 子数组的
异或
查询 1442 可组成
两个
相等
异或
数组的计数三元组 难的 1611 使
整数
为零的最少一位操作 大批 简单的 0001 二和 0026 从排序数组中删除重复项 0027 删除元素 0035 搜索插入位置 0053 最大子阵列 0066加一 0088 合并排序数组 0118 帕斯卡三角 0119 帕斯卡三角II
巧用
异或
运算
异或
运算 对
两个
整数
进行
异或
运算(运算符为^),将
两个
整数
化成二进制表示,然后逐位运算。运算规则如下: 0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0; 即
两个
位相同时,
异或
结果为0,反之,
异或
结果为1. 因此,
两个
相等
的
整数
异或
结果为
Java中
异或
运算实现
两个
整数
的交换以及其功能函数实现
今天学习到一种超酷炫的交换
两个
整数
的方法,给各位分享
一下
。
异或
运算属于位运算的一种,首先简单介绍
一下
异或
预算的语法规则。 假设a与b为不
相等
的
两个
整数
。 (1)a^a=0; (2)a^b=0; (3)a^0=a; (4)a^b=b^a,即
异或
满足交换律。 (5)(a^b)^c=a^(b^c),即
异或
满足结合律。 接下来介绍
一下
异或
运算实现
两个
整数
交换的原理,同样假设a与b为
异或
总结,位运算
异或
性质:相同为0,不同为1 1.由于0^0=0 0^1=1 所以,0^任何数 = 任何数。 2.由于1^0=1 1^1 =0所以,1^任何数 = 任何数取反。 3.任何数^任何数 = 0。 4.用于将特定的位反转,如对10100001的第2位和第3位翻转,可以将数与00000110进行按位
异或
运算。 5.通过按位
异或
运算,可以实现
两个
值的交换,而不必使用临时变量。 6.
异或
运算的特点:a两次
异或
同一个数b(a=abb)仍然为原值a。 7.
异或
是可交换的:a^b = b^a。 例1:不使用临时变量交换a和b
判断
两数
相等
的常规解法与另类解法
equalStr通过strcmp来比较,若str1等于str2,贼返回0,若str1大于str2,返回1,否则返回-1。equal便能通过基本运算符 "== "实现,而字符串不能单纯的比较,要借助函数strcmp。此函数原型如下:int strcmp(char *str1,char *str2)a和b的
异或
运算,若a与b
相等
,则
异或
运算返回0,则此函数返回1。头文件为#include 以上就是此次的全部内容了。
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章