5.常用零碎知识

一、逻辑运算符

C++语言中提供了三种逻辑运算符:与运算(&&)、或运算(||)、非运算(!)。与运算符(&&)和或运算符(||)均为双目运算符(运算所需变量为两个的运算符叫做双目运算符),具有左结合性。逻辑运算符和其他运算符优先级关系如:
  按照运算符的优先顺序可以得出:
  a>b&&c>d 等价于(a>b)&&(c>d)
  !b= =c||d<a 等价于((!b)= =c)||(d<a)
  a+b>c&&x+y<b 等价于((a+b)>c)&&((x+y)<b)
  逻辑运算的值也为“真”和“假”两种,用“1”和“0”来表示。求值规则如下:
  (1) 与运算:参与运算的两个量都为真是,结果才为真,否则为假。
  (2) 或运算:参与运算的两个量有一个为真,则结果为真,两个量都为假时,结果为假。
  (3) 非运算:参与运算量为真时,结果为假;参与运算量为假时,结果为真。

二、位运算符

运算符含义说明例子
&按位与把参与运算的两个数对应的二进制位相与,只有对应的二进制均为1时,结果的对应为才为1,否则为0
(竖杠)按位或把参与运算的两个数对应的二进制位相或,也就是只要对应的两个二进制位有一个为1时,其结果就为1
^按位异或把参与运算的两个数对应的二进制位相异或,当对应的二进制位上的数据字不相同时,结果对应为1,斗则为01^1=0 1^0=1 0^0=0 0^1=1
~取反把运算数的各个二进制位按位求反
<<左移把“<<”左边的运算数的各二进制位向左移若干位,“<<”右边的数是制定移动的位数,高位丢弃,低位补0。a<<4指把a的各二进位向左移动4位,如a=00000011(十进制3),左移4位后为00110000(十进制48)
>>右移把“>>”左边的运算数的各二进制位全部右移若干位,“>>”右边的数是指定移动的位数。设a=15,a>>2表示把00001111右移为00000011(十进制3)

说明:
对于有符号数,在右移时,符号为将随同移动。当操作数为正数时,最高位为0,而为负数时,最高位为1。最高位是补0或补1取决于编译系统的规定。

三、运算简写

例:a+=b等同于a=a+b
  a&=b等同于a=a&b
  a<<=b等同于a=a<<b
运算符优先级从低到高:
赋值运算符 逻辑运算符 关系运算符 算数运算符

关系运算符的结合性为:自左至右。

四、常用库x函数

函数名格式功能说明例子
绝对值函数abs(x)求一个数x的绝对值abs(-5)=5
自然数指数函数exp(x)求实数x的自然指数e^xexp(0)=1
向下取整floor(x)求不大于实数x的最大整数floor(3.14)=3
向上取整ceil(x)求不小于实数x的最小整数ceil(3.14)=4
自然对数函数log(x)求实数x的自然数对数log(1)=0
指数函数pow(x,y)计算x^y,结果为双精度实数pow(2,3)=8
随机函数rand()产生0到RAND-MAX之间的随机整数
平方根值函数sqrt(x)求实数x的平方根sqrt(25)=5

五、用cout控制精度输出

cout输出精度用于浮点数输出,包括float和double类型。
法1:
引用头文件iomanip, 并使用setiosflags(ios::fixed);配合setprecision。
例:

#include<iostream>
#include<iomanip>
using namespace std;
 int main()
 {    
       double f = 3.1415926535;
       cout << f << endl;           // 3.14159    
       cout <<setiosflags(ios::fixed);  //只有在这项设置后,setprecision才是设置小数的位数。    
       cout << setprecision(0) << f << endl;    //输出0位小数,3    
       cout << setprecision(1) << f << endl;    //输出1位小数,3.1    
       cout << setprecision(2) << f << endl;    //输出2位小数,3.14    
       cout << setprecision(3) << f << endl;    //输出3位小数,3.142    
       cout << setprecision(4) << f << endl;    //输出4位小数,3.1416    
       return 0;
       }

法2:

加上头文件#include< iomanip>
cout<<fixed<<setprecision(2)<<a<<endl;
setprecision()括号里表示小数点后要输出几位小数,a代表输出的变量
例如:

#include <iostream>
#include <iomanip>
using namespace std;
int main () 
{  
    double f =3.14159;  
    cout << setprecision (5) << f << endl;  
    cout << setprecision (9) << f << endl;  
    cout << fixed;  
    cout << setprecision (5) << f << endl;  
    cout << setprecision (9) << f << endl;  
   return 0;
   }
   输出结果:
   3.1416 
   3.14159
   3.14159
   3.141590000

六、setw()函数

setw()函数只对其后面紧跟的输出产生作用,若输入的内容超过setw()设置的长度,则按实际长度输出。
setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。
如:
cout<<setfill(’’)<<setw(5)<<‘a’<<endl;
则输出
***a //4个字符和a共占五个位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值