课堂笔记
一、算术运算符:
二元运算符:+,-,*,/,%(取余)
一元运算符:-(负号)→取相反数
int a,b,c; //[-2147483648,2147483647]
// a=2147483647,b=3;
// c=a+b;
// cout<<"c="<<c<<endl;
// a=-2147483648,b=1;
// c=a-b;
// cout<<"c="<<c<<endl;
a=5,b=2;
cout<<a*b<<endl;
cout<<a/b<<endl; //除法对整型数来讲是整除
float f1=5,f2=2;
cout<<f1/f2<<endl;
//%,只对整型数操作
cout<<a%b<<endl; //5=2*2+1
a=345; //345=100*3+45 a=2345
cout<<a/100<<endl;
cout<<a%10<<endl; //345=10*34+5
cout<<(a/10)%10<<endl; //34=10*3+4,法一:将十位数字变换为最低位取余//cout<<(a-3*100)/10<<endl;45/10=4 法二:将十位数字变换为最高位取整
a=3; //3=10*0+3
cout<<a%10<<endl;
cout<<7.0/2<<endl; //普通除法
二、复合赋值运算:*=,/=,+=,-=,%=
int a=2,b=5,c;
a*=2; //a=a*2; a+=2; a=a+2;
a/=2; //a=a/2; a-=2; a=a-2;
cout<<a<<endl;
a+=a; //a=a+a
cout<<a<<endl;
a+=a-=a*a; //a-=a*a a=a-a*a a=a+a //×不要使用这种让自己和别人都看不懂的写法
cout<<a<<endl;
三、增量运算和减量运算:++,--
int a=2,b,c;
//b=a++; //a++: a=a+1; a--: a=a-1
//后增量 :先拿原来的值参与其他运算,再自行增量
b=++a; //++a:a=a+1; --a: a=a-1
//前增量,先进行自增,然后再参与其他运算
cout<<a<<"\t"<<b<<endl;
b=a++;
c=b+a;
cout<<c<<"\t"<<a<<endl;
//可读性好
return 0;
}
代码编写
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
//一、 简单一元二元算术运算
//*1.注意超出整型范围的计算
int a,b,c;//整型数据范围为[-2147483648,214748647]
a=2147483647,b=3;
c=a+b;
cout<<"c="<<c<<endl;
//输出结果为倒回-2147483648进行计算,相当于这个范围是一个循环
//同理
//输出警告,可能是-2147483648并不是一个数值常量,而是一个表达式,它是2147483648这个数值常量前面加了一个单目运算符“-”。
//而2147483648本身超出了int型的范围,又没有用后缀(L,UL等)指明它的类型,所以会导致undefined behavior。
/* a=-2147483648,b=1;
c=a-b;
cout<<"c="<<c<<endl;*/
//2.简单运算
a=5,b=2;
cout<<a*b<<endl;
cout<<a/b<<endl;//除法对整型数是整除
cout<<a%b<<endl;//%取余只对整型数操作 //5=2*2+1
float f1=5,f2=2;
cout<<f1/f2<<endl;//与整型数的区别在与可以显示小数点后面的位数
//3.利用取余整除等运算取出一个三位正整数的每个位上的数字
a=345;
cout<<a/100<<endl;//345=100*3+45百位
cout<<(a/10)%10<<endl;//34=10*3+4,法一:将十位数字变换为最低位取余
//cout<<(a-3*100)/10<<endl;45/10=4 法二:将十位数字变换为最高位取整
cout<<a%10<<endl;//345=10*34+5个位
//二、复合赋值运算
int d=2;
d*=2;//d=d*2;
cout<<d<<endl;
d/=2;//d=d/2;
cout<<d<<endl;
d+=2;//d+=2; d=d+2;
cout<<d<<endl;
d-=2;//d-=2; d=d-2;
cout<<d<<endl;//注意啊从除法那步开始就已经使用上面运算赋值后的结果了
//不是一直都用d=2这个数据的
d+=d-=d*d;//d-=d*d→d=d-d*d=2-2*2=-2 d=d+d=-2+(-2)=-4//×不要使用这种让自己和别人都看不懂的写法
cout<<d<<endl;
//三、增量运算和减量运算:++,--
int e=2,f,g;
f=e++;//f=2 因为是先把e的值赋值给f,然后e再增量
//e++:e=e+1;e--:e=e-1
//后增量 :先拿原来的值参与其他运算,再自行增量
cout<<f<<endl;//注意转义字符要放到引号内 并且要单独用<<括起来
cout<<e<<endl;
//前增量,先进行自增,然后再参与其他运算
f=++e; //++e:e=e+1; --e: e=e-1
cout<<f<<endl;
cout<<e<<endl;//此时二者结果相同
f=e++;
g=f+e;
cout<<g<<"\t"<<e<<endl;
return 0;
}
学习总结
1.理解了超出整型数据范围运算
2.编写代码过程中了解了超出范围无法输出的警告
3.自学了取出三位数中十位数字的两种办法
4.编写过程知道了赋值后结果会根据后面的代码一直运行
5.对比了前增量与后增量的区别
6.注意转义字符要单独用“”引号与<< <<括起来
7.那个混合复合赋值运算仍然遵循先乘除后加减的原则