学习日记之运算符

运算符优先级:
单目(++,–,!,~,())>算术>(左移、右移)>关系>(&,^,|)>逻辑>条件>赋值>逗号

1.关系运算符:>,<,>=,<=,==,!= 运算结果为bool型*
2.逻辑运算符:!、&&、|| 运算结果为bool型
	!逻辑非:真则为假,假则为真。
	&&逻辑与:同真为真,否则为假(只要有一个假,则全部为假,否则为真)。先算前面的式子,前面式子为假,后面的式子不参与运算。
	||逻辑或:有真为真,否则为假(只要有一个真,则全部为真,否则为假)。先算前面的式子,前面式子为真,后面的式子不参与运算。
3.条件运算符: ?:
	a?b:c  如果a为真,结果b,否则为c
4、位运算:~,<<,>>,^,|,&  2进制补码的形式参与运算
	~按位非:按位取反(0变1,1变0)
	<<左移: 低位补0.
	>>右移:正数高位补0,负数高位补1
	&按位与:同1为1,否则为0
//按位与
	/*
	5补码	00000101
	3补码	00000011
			00000001 补码

	判断一个正整数x是否为2的n次幂? !(x&x-1)
	*/
	cout << (5 & 3) << endl;//1
	^按位异或:同则为0,异则为1
	/*
		不经过第三方变量交换两个整型变量的值
	*/
	int a=3, b=5;
	//不会产生数据溢出
	b = a^b;
	a = a^b;
	b = a^b;
	cout << "a=" << a << ",b=" << b << endl;
	|按位或:有1为1,否则为0
char c=10;
/*在进行位运算或赋值运算时注意整型提升
	int型 4个字节=32位
x的原码: 0 0000000 00000000 00000000 00001010
	反码:0 0000000 00000000 00000000 00001010
	补码:0 0000000 00000000 00000000 00001010
	<<2  0 0000000 00000000 00000000 00101000 补码(看成原码求补码)
	反码 0 0000000 00000000 00000000 00101000
	补码 0 0000000 00000000 00000000 00101000 补码的补码(原码)
		40
		m<<n结果为m*2的n次幂(没有数据溢出的情况下)

	*/
	cout << (c << 2) << endl;//40  
	c = c << 4;//c<<4=160 把160赋值变量c时,数据溢出
	cout << (int)c << endl;//-96=160-256

运算符总则:
1.整型提升:
2.精度高为准
单目运算符(++,–、强转)>双目(算术运算符>赋值运算符>逗号运算符)
一、自增自减:自己(变量)本身+1或者-1
前置:++a,–a:先自加(减),再运算
后置:a++,a–:先运算,再自加(减)
总结:前置优先级低于后置;前置效率高于后置
运算法则:运算前,数前置;运算后,数后置。
二、赋值运算符:=,+=,*=…
1.左值必须是变量。
2.结合性:从右往左
3.右值必须看成一个整体
3.逗号运算符:,
由逗号运算符组成的式子,称为逗号表达式。
从左往右依次计算,最后一个式子的值,就是整个表达式的值。
4.强转: (类型)
1.把浮点型强转为整型,去掉小数部分。
2.整型强转为字符型,该整型作为ASCII码值对应的字符


原码:有符号的最高位表示符号位,其他位表示大小
反码:正数与原码相同,负数:符号位不变,按位取反(0->1,1->0)
补码:正数与原码相同。负数:反码+1
补码的补码就是原码
详情看原码反码补码
https://editor.csdn.net/md/?articleId=115379828

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GAME LIAO

感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值