长春做网站seo,wordpress pdf 显示,wordpress接入qq登陆,域名的网站建设方案书怎么写不知道大家有没有遇到过这种要求#xff1a;“返回值必须是int#xff0c;如果整数数超过 32 位有符号整数范围 [−2^31, 2^31 − 1] #xff0c;需要截断这个整数#xff0c;使其保持在这个范围内。例如#xff0c;小于 −2^31 的整数应该被固定为 −2^31 #xff0c;大…不知道大家有没有遇到过这种要求“返回值必须是int如果整数数超过 32 位有符号整数范围 [−2^31, 2^31 − 1] 需要截断这个整数使其保持在这个范围内。例如小于 −2^31 的整数应该被固定为 −2^31 大于 2^31 − 1 的整数应该被固定为 2^31 − 1 题目链接. - 力扣LeetCode 若已知int能表示的最大值与最小值本题直接如下截断即可
return max(min(ans, int_max), int_min);//ans表示未经处理正确答案
那么问题来了如何获取int的最值
1.通过C已有库
在C中可以使用limits头文件中的std::numeric_limits模板类来获取int类型的最大值和最小值。下面是示例代码
#include iostream
#include limitsint main() {// 获取int类型的最大值int max_int std::numeric_limitsint::max();std::cout 最大值 max_int std::endl;// 获取int类型的最小值int min_int std::numeric_limitsint::min();std::cout 最小值 min_int std::endl;return 0;
}这段代码中std::numeric_limitsint::max()返回int类型的最大值std::numeric_limitsint::min()返回int类型的最小值。
2.通过移位运算
#include iostreamint main() {// 计算int类型的最大值int max_int (1 31) - 1; // 或者使用 0x7FFFFFFFstd::cout 最大值 max_int std::endl;// 计算int类型的最小值int min_int -(1 31); // 或者使用 0x80000000std::cout 最小值 min_int std::endl;return 0;
}
这段代码中(1 31) - 1计算出32位中除了符号位外全为1的二进制数即011...1即为int类型的最大值。而-(1 31)计算出32位中符号位为1其余位为0的二进制数即100...0即为int类型的最小值。