c/c++运算符
1.算术运算符(+ - / * %)
2.移位运算符
移运算符:操作数必须是整形,>>,逻辑左移左边移入的位用0填充,算数左移左边移入的的位用符号位补齐。(无符号数为逻辑左移,对于有符号数取决于编辑器)
<<,值左边的几位被丢弃,右边的多出来的几个空位用0补齐。
例:返回参数中1的个数
int SumOfOne(int num)
{
int count = 0;
for (int i = 0; i < 32; i++)
{
if (num &1)
count++;
num >>= 1; }
return count;
}
3、位操作符(& | ^)
将指定位(bit_number)置1
value=value|1<<bit_number;
将指定位(bit_number)置1
value=value&~(1<<bit_number)
4、赋值,复合赋值运算符(=,+=,-=,*=,%=,......)
5、单目运算符(只接受一个操作数)(!,++,-,&,sizeof,~,--,*,(类型))
6、关系运算符(>,>=,<,<=,!=,==)
7、逻辑运算符(&&,||)
a>5&&a<10 (&&的优先级比>和<的优先级低所以组合方式为(a>5)&&(a<10 )但尽管&&的优先级较低但它还会对两个表达式加以控制只有左操作数为真时才对右操作数进行操作)
操作符的一些应用:
判断一个数是不是2的n次方
bool IsPowOfTwo(int num)
{
if (!(num&num - ))
return ;
return ;
}
定义宏实现将一个int型的数的奇偶位互换
#define M(n) (((n>>1)0x55555555)|(n<<1)&0xaaaaaaaa)
将一个二进制序列逆序
int Reverse(int num)
{
int ret = ;
for (int i = ; i < ; i++)
{
ret <<= ;
ret|= (num >> i) & ;
}
return ret;
}
找出一组数中唯一的出现一次的数
int FindOneCount(int *a, int size)
{
int xor = ;
for (int i = ; i < size; i++)
{
xor = xor^a[i];
}
return xor; }
找出只出现一次的两个数,其他的都是成对出现的
void FindTwoCount(int *a, int size,int *p1,int *p2)
{
int tmp = ;
int xor = ;
int pos = ;
for (int i = ; i < size; i++)
{
xor ^= a[i];
}
tmp = xor;
while (xor)//找出不同的一位
{
if ((xor & ) == )
break;
pos++;
xor >>= ;
}
for (int i = ; i < size; i++)
{
if ((a[i] >> pos) & )
{
(*p1)^= a[i]; }
xor = tmp;
*p2 = xor ^ (*p1); }
printf("%d\t%d\n", *p1, *p2);
}
c/c++运算符的更多相关文章
- shell运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...
- SQL Server-聚焦APPLY运算符(二十七)
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...
- java中的移位运算符:<<,>>,>>>总结
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- .NET 基础 一步步 一幕幕[运算符、占位符、转义符]
运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...
- ECMASCript2015 提案 stage-3的对象展开运算符
看源码时看到如下的代码 export default { //通过mapActions将actions映射到methods里 methods: { ...mapActions([ 'updateSta ...
- JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)
1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...
- JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)
1.3种原始表达式 1.直接量: 1.23 //数字直接量 “hello” //字符串直接量 ...
- LINQ to SQL语句(18)之运算符转换
运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...
- El表达式的关系运算符
El表达式的关系运算符: == 对应 eq != 对应 ne > 对应 gt < 对应 It
随机推荐
- linux:RAID(磁盘阵列)笔记
RAID磁盘阵列简述: RAID0(条带): 把多个同样大小的磁盘串联起来当做一个磁盘来用. 优点:读写速度快. 缺点:数据容易丢失(没有容错能力). ...
- Leaving Auction CodeForces - 749D (set,贪心,模拟)
大意: 若干个人参加拍卖会, 给定每个人出价顺序, 保证价格递增, q个询问, 给出k个人的编号, 求删除这k个人的所有出价后, 最终谁赢, 他最少出价多少. set维护每个人最后一次投票的时间, 每 ...
- CSS3之box-shadow--阴影外阴影与外发光
基础语法 外阴影:box-shadow:X Y Npx #color; 内阴影:box-shadow:inset X Y Npx #color; 第一个属性:阴影的X轴(可以使用负值) 第二个属性:阴 ...
- s:schema报错问题
解决方案: 删除所有<s:element ref="s:schema"/>标签 说明书改为本地文件
- Delphi 字符型数据
- js 代码大全(各种方法、属性)
事件源对象event.srcElement.tagNameevent.srcElement.type捕获释放event.srcElement.setCapture(); event.srcElemen ...
- laravel中间件失效,配置文件重新加载
composer dump-autoload php artisan cache:clear 清理视图缓存 php atisan view:clear 清除运行缓存 php artisan cache ...
- 007-zabbix Server 4.0 监控TCP的12种状态
大家对TCP三次握手比较熟悉了,都知道当发生DOSS攻击时,客户端发送SYN给服务端后,服务端响应SYN+ACK,此时客户端就不回应服务端ACK啦(如果正常建立三次握手客户端会回应ACK,表示三次握手 ...
- java高并发实战Netty+协程(Fiber)|系列1(续)|事件驱动模式和零拷贝
上次讲到事件驱动模式,今天我们来好好分析下netty的事件模式的几个类型. 先从NIO讲起, JAVA NIO方面Selector给Reactor模式提供了基础,Netty结合Selector和Rea ...
- 约会 Rendezvous:基环树
提炼:tarjan判环,dfs建树,倍增lca,预处理环两点间距离 我犯的错误: 1.基环树不只有一棵,可以有很多 2.自环不能将其忽略,(对于我的算法)应该将其特殊考虑在算法内 3.代码一定要简洁有 ...