首页 > 代码库 > Class 1 -- 知识点串讲
Class 1 -- 知识点串讲
- int类型的取值范围:-2147483648 - 2147483647,上界是2*109,超出会循环(变负号);
- 浮点数比大小:
(int)a=1 (实际上)a=1.00001
b=1 b=0.99999
然而比大小时的精度不需要那么高,也就是说可以忽略极小的误差。这是我们需要设置eps(ε)。一般是保留的位数+3:比如,保留三位小数,eps=1e-6;然而注意不要越界:double eps=1e-15,不能再大了。
根据数轴理解→→→→→→→→→→→→→↓
a==b | fabs(a-b)<eps |
a>b | fabs(a-b)>eps |
a≥b | fabs(a-b)>-eps |
a<b | fabs(a-b)<-eps |
a≤b | fabs(a-b)<eps |
- 一个浮点数陷阱:
1 //输入有l,输出没有 2 scanf("%lf"); 3 printf("%f");
- 关于位运算
1.& , | , ~ , ^ , << , >>
and,or,not,xor,lsh,rsh
2.位运算的优先度很低,所以记得要加括号。但是得益于它优先度比较低,算起来也比较快。所以平时写的时候最好用位运算,以防被卡掉一个点。
3.作用:
①判断奇偶(原因是二进制奇数个位一定是1):
1 int a; 2 if(a & 1) //奇数 3 else //偶数
②乘除2的幂:
1 int a; 2 a>>1; //即除2。二进制每右移一位就是除2 3 a<<1; //即乘2.不过要小心溢出。如果溢出的话首位的符号位就会消失,出现变负等情况
③如何用位运算求得一个整数除以16的余数?
除以16,即24,即将二进制被除数a右移4位。那么根据抑或运算的性质,a&15得到的值即为a除以16得到的余数。
Class 1 -- 知识点串讲
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。