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
随机推荐
- RabbitMQ入门教程(十六):RabbitMQ与Spring集成
原文:RabbitMQ入门教程(十六):RabbitMQ与Spring集成 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- Git生成公钥.pub 及秘钥 命令
Git生成公钥.pub 及秘钥 命令 ssh-keygen -t rsa -C "******@qq.com" 将.pub公钥里面内容复制到github或者将这文件交给git管理员 ...
- Java中遍历Set集合的方法
对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = s ...
- 树莓派3b+下一些常用的命令(Debian下)
安装Mysqlsudo apt-get install mysql-server即可 注:第一次登陆是可能出现以下错误,则按顺序输入命令即可: ERROR 1698 (28000):Access de ...
- 将shell脚本的执行过程和执行结果导入到log文件中
[root@localhost scripts]# vim ping.sh #!/bin/bash set -x ##分步执行 exec &> /tmp/log.txt ##脚本执行的过 ...
- Linux下网络设置
1.临时IP配置 # ifconfig eth0 192.168.110.118 netmask 255.255.255.0 gateway 192.168.110.2 up # ...
- SQL的基本操作(三)
Hive基本SQL操作 Hive DDL(数据库定义语言) 1.数据库的基本操作 --展示所有数据库 show databases; --切换数据库 use database_name; /*创建数据 ...
- 问题:关于2.3 jmu-Java-02基本语法-03-身份证排序 (9 分)
输出未能排序 import java.util.Scanner; import java.util.Arrays; public class Main { pu ...
- 跨平台开发框架DevExtreme v19.1.4正式发布|附下载
DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...
- Quartz(二)
1 SchedulerFactory 1.1 概述 Quartz是以模块的方式构建的,因为,要使它运行,几个组件必须很好的组合在一起.非常幸运的是,已经有了一些现存的助手可以完成这些工作. 所有Sch ...