C++:运算符及优先级

一、cout实现输出其他进制
cout<<hex<<i<<endl; //输出十六进制数
cout<<oct<<i<<endl; //输出八进制数
cout<<dec<<i<<endl; //输出十进制数
cout<<bin<<i<<endl; //输出二进制数cout << bitset<10>(a) << endl;
// 输出16进制, setbase(int)可以设置8等。
cout << setbase(16) << i << endl;
二、前后缀运算
前缀运算是“先变后用”
后缀运算是“先用后变”
三、位运算符
1、位操作符使用整型的操作数,位操作符将其整型操作视为二进制位的集合,为每一位提供检验和设置功能。

操作符功能单双目用法
&按位与双目运算符expr1& expr2
按位或双目运算符
^按位异或双目运算符expr1^ expr2
~取反单目运算符~expr1
<<左移双目运算符expr1 <<expr2
>>右移双目运算符expr1 >>expr2

四、按位操作的一个技巧
使用异或实现交换两个值,并且不使用第三方变量

a = a^b;
b = a^b;
a = a^b;

五、移位运算符

类型左移右移
int低位补零高位补符号位
unsigned int低位补零高位补零

应用:用位移实现计算一个数的1的个数

int numberOf1(int n)
{
	int count = 0;
	while(n)
	{
		if(n&1)//查看n最低位是不是1
			cout++;
		n>>1;
	}
	return count;
}

六、赋值转换
内存范围大的传换为小的,高位舍去,例:int(4byte)转换为unsigned short(2byte)
short a = 0x1111FFFF;//得到的a为0xFFFF
取值范围小的赋给范围大的,符号位扩展,例:char转换为int
chat a = 0xe0;
int b = a;//0xe0为11010000符号位为1,所以b = 0xffffffe0;

注意:unsigned short a;//a 的最大值为65536.当内存溢出时,计算a的值为a%65536,即循环从头数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值