(1)强制转换 int(a)舍去小数部分
例:
#include<stdio.h>
int main()
{
float a;
scanf("%f", &a);
printf("%d", int(a));
return 0;
}
输入:
2.5
输出:
2
(2)x / y实现为x除以y向零取整
*例:
(-8) / 3 = -2
8 / 3 = 2
(3)floor函数、ceil函数、round函数取整
floor函数:向下取整
ceil函数:向上取整
round函数:四舍五入取整
需用头文件:#include<math.h>取整后数据类型不变
例:
#include<stdio.h>
#include<math.h>
int main()
{
double a, b;
scanf("%lf %lf", &a, &b);
printf("%d %d %d\n", (int)floor(a), (int)ceil(a), (int)round(a));
printf("%d %d %d\n", (int)floor(b), (int)ceil(b), (int)round(b));
//取整后类型不变强制转换
return 0;
}
输入:
2.5 -2.5
输出:
2 3 3
-3 -2 -3
(4)n >> 1算术右移等于除以2向下取整
*例:
(-3) >> 1 = -2
3 >> 1 = 1