标签:不能 com center 陷阱 rsh span int 输入 pre
(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得到的余数。
标签:不能 com center 陷阱 rsh span int 输入 pre
原文地址:http://www.cnblogs.com/lulala/p/7186520.html