社区
C#
帖子详情
请教: 对于整型,^ 计算操作数的按位“异或”,如何理解?
kwklover
2004-11-02 12:07:57
如题
说的好的朋友,还可以加分,以表谢意哦
...全文
217
10
打赏
收藏
请教: 对于整型,^ 计算操作数的按位“异或”,如何理解?
如题 说的好的朋友,还可以加分,以表谢意哦
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoslong
2004-11-03
打赏
举报
回复
帮你顶
一半乐事
2004-11-03
打赏
举报
回复
“对于整型,^ 计算操作数的按位“异或”,如何理解? ”
我想是这样,对于两个操作数按位异或,可以使两个操作数中相同的"位"置为0,不同的"位"置为1。
这样的结果中必然与操作数不同(当然要保证任一操作数不能为0)。这也是异或比“与”或“或”的优点吧。比如
111^011=100;101^100=001//只有这个的结果与原操作数不同
111&011=011;101&100=100
111|011=111;101|100=101
一半乐事
2004-11-03
打赏
举报
回复
说点看法,不一定对:
“一个类型常具有多个可以参与生成哈希代码的数据字段。生成哈希代码的一种方法是使用 XOR (eXclusive OR) 运算合并这些字段。”
这句话的意思是不是这样,使用异或只是生成哈希代码的一种方法。方法本身并不能保证哈希值唯一,要保证哈希值唯一就要保证参与异或的值唯一。比如这个:
public override int GetHashCode () {
return a.GetHashCode() ^ b.GetHashCode() ^ c.GetHashCode();
}
kwklover
2004-11-03
打赏
举报
回复
to:hanxue1983(寒雪)
概念和一些简单的应用
我也是在学需要重写System.Object得GetHashCode的时候,里面提到一个使用异或结合属性值来产生哈西码的方式,我想知道为什么这样做可以保证唯一性
icesnows
2004-11-02
打赏
举报
回复
异或,就是当两bit值不同的时候输出1,相同时输出0;这就可以推出在一个为1时,输出结果将为另一位取反,而当一位为0 时,输出结果就等于另一位,从而可以完成楼上仁兄所说的功能;另外,异或用在编码中比较多
hanxue1983
2004-11-02
打赏
举报
回复
你是想知道异或是什么概念,还是想知道怎么实现?
sexfreebird
2004-11-02
打赏
举报
回复
异或:是在两个bit之间发生的计算,只有当两个bit相同即均为0或者均为1的时候结果为1,否则,只要两个bit不同结果就为0,主要用开关,比较是否相等等情况下,主要还要看具体问题,然后再具体分析,开发中会经常遇到这种情况的。
homesos
2004-11-02
打赏
举报
回复
直接用异或,有时可以节省资源的开销,简化程序
一个很简单的例子:
将变量a与变量b换位
a = a ^ b;
b = a ^ b;
a = a ^ b;
kwklover
2004-11-02
打赏
举报
回复
这里会的朋友少,还是不原意来呢?
谢谢上面两位兄弟
cancersyf
2004-11-02
打赏
举报
回复
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vclrfbitwiseexclusiveoroperator.asp
异或:当且仅当两位中有一位是1时候,结果位是1。主要用于开关一个位值。使用方法是对原
有内容进行异或操作,要变换的位为1,保持的为0。例如要变换1,3位,则使用:
0101。
java位运算之移位运算
float为单精度浮点数,是无法同byte,char,short,int,long这些整数进行位运算的。...与运算符 与运算符用符号“&”表示,其使用规律如下:两个
操作数
中位都为1,结果才为1,否则结果为0,例如下面的程序段。
计算
机组成原理的Java实现
能够实现机器数的真值还原(定点整数)、定点整数的单符号位补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。 3 功能模块详细设计 3.1 主窗体设计 图3-1主界面图 图3-2 口令
嵌入式面试题集合(包答案)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL ...3) 意识到这个表达式将使一个16位机的
整型
数溢出-因此要用到长
整型
符号L,
C/C++笔试题
8一个给定的数值由左边开始升位到右边第N位,如 0010 == 0100 或者 0001 0011 请用C或者C++或者其他X86上能运行的程序实现。 附加题(只有在完成以上题目后,才获准回答) 1。In C++, ...
C语言面试题汇编
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2.如何引用一个已经定义过的全局变量?
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章