六种常见按位运算符:按位与(&)、按位或(|)、按位异或(^)、按位非(~)、按位左移(>).
这些运算符都只能用于整数类型,~是一元运算符,其他都是二元运算符。
1、按位与(&):合并操作数的对应为,如果两个位都是1,结果为1;否则,结果为0.如:
x 00001101
y 00000110
x&y 00000100
2、按位或(|):对应位中的两位都是0,则结...
分类:
其他好文 时间:
2014-05-13 08:34:52
阅读次数:
224
1、重载赋值运算符=赋值运算符用于同类对象间的相互赋值。赋值运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数。对于用户自定义的类而言,如果没有重载赋值运算符,那么C++编译器会为该类提供一个默认的重载赋值运算符成员函数。默认赋值运算符的工作方式是按位对拷,将等到右边对象的非静态成员...
分类:
编程语言 时间:
2014-05-12 13:15:06
阅读次数:
507
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Single Number II
Total Accepted: 14224 Total
Submissions: 43648
Given an array of integers, every element appears three ti...
分类:
其他好文 时间:
2014-05-11 03:54:46
阅读次数:
317
题意:在一组数组中除一个元素外其它元素都出现两次,找出这个元素
思路:位运算。异或。因为异或操作可以交换元素的顺序,所以元素异或的顺序没影响,
最后出现再次的元素都会被异或掉,相当于0和只出现一次的那个元素异或,结果还是那个元素
推广:这个方法也适合于出现其它元素都出现偶数次,而要找的元素出现奇数次的情况
相关题目:Single Number II
class Solution...
分类:
其他好文 时间:
2014-05-11 02:37:42
阅读次数:
397
一、位运算常用的小技巧:判断奇偶、交换两数、变换符号及求绝对值等1.判断奇偶只要根据最未位是0还是1来决定,为0就是偶数,为1就是奇数。因此可以用if ((a
& 1) == 0)代替if (a % 2 == 0)来判断a是不是偶数。下面程序将输出0到100之间的所有奇数。1 for (i = 0;...
分类:
其他好文 时间:
2014-05-09 23:43:43
阅读次数:
467
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
其他好文 时间:
2014-05-09 08:10:36
阅读次数:
338
1.
奇数偶数对于一个正整数的二进制,如果是偶数,那么最低位一定是0,相反如果是奇数,最低位一定是1。比如4(0100),3(0011)等等。因此通过对一个整数的二进制最低位的可以判断其是奇数还是偶数。对正整数a,判断奇偶可以通过(a&0x1)来判断,是1则是奇数,是0则是偶数。将一个奇数转成比他小...
分类:
其他好文 时间:
2014-05-08 13:31:25
阅读次数:
272
看到一个题目~~3.14得到是3,一下子有点蒙,之前在Javascript中完全没有见过~这个运算符。经查才知道~是补位运算符,但是跟原码反码补码又有点不同(在反码这一块,不记正负),好吧,大学的东西都还给老师了。举个简单点的例子吧。~2
= -3,看看怎么得出这个结果的:2的二进制是:0000 0...
分类:
编程语言 时间:
2014-05-08 09:05:45
阅读次数:
375