或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。
异或的性质:
1、交换律:a^b = b^a;
2、结合律:(a^b)^c = a^(b^c);
3、对于任意的a:a^a=0,a^0=a,a^(-1)=~a。
了解了上面这些,来看看这个,很重要,后面的程序都要用到这个结论:
对于任意的a,有a^b^c^...
分类:
其他好文 时间:
2014-06-03 03:19:56
阅读次数:
267
在 javascript 中经常会用到 typeof 和 instanceof
来判断一个对象的类型,可能 typeof 用得多些,那来看看这两个之间的区别吧。typeof
:typeof是一个一元运算符,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。ty...
分类:
编程语言 时间:
2014-06-02 19:56:50
阅读次数:
222
问题描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
算法描述
从二进制运算入手,
1.a^b求出各bit的和,
2.a&b求出需要进位的bits,
3
4.重复1、2、3直至a&b==0(即进位为0),得到结果。
代码
int add(int num1,int num2)
{
if(num2==0)
retu...
分类:
其他好文 时间:
2014-06-02 12:38:46
阅读次数:
225
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入为两个整数m和n(1<=m,n<=1000000)。
输出:
对应每个测试案例,输出m+n的值。...
分类:
其他好文 时间:
2014-06-02 11:01:02
阅读次数:
183
为什么赋值运算符要返回引用??因为赋值操作会改变左值,而 +
之类的运算符不会改变操作数,所以说赋值运算符重载要返回引用以用于类似 (a=b)=c 这样的再次对a=b进行写操作的表达式。+ 返回一个临时对象是合情合理的
,你若返回引用大多数情况下也不会出错或导致某个操作数被意外修改,但这就使(a+b...
分类:
编程语言 时间:
2014-06-02 08:57:00
阅读次数:
382
POJ3952,题目链接http://poj.org/problem?id=3295题意:输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式,其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量;K、A、N、C、E为逻辑运算符,K-->and:x&&yA--...
分类:
其他好文 时间:
2014-06-02 08:29:53
阅读次数:
215
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerExcept...
分类:
编程语言 时间:
2014-06-01 09:13:59
阅读次数:
324
C++的前世今生:C的结构化思想;Ada的模版思想;Fortran的运算符重载思想;Simula的OO思想:封装,继承,多态;C++类型描述了变量的三个特征:该类型在内存中占用物理空间的大小(空间读取范围);该类型的值的合法的取值范围(位模式解释方法);合法的操作集(数据的用法);C++的整数类型有...
分类:
编程语言 时间:
2014-05-31 20:57:08
阅读次数:
481