【发布时间】:2011-03-25 21:39:30
【问题描述】:
我尝试使用波浪号获取 int 的 MAX 值。但输出不是我所期望的。 当我运行这个时:
#include <stdio.h>
#include <limits.h>
int main(){
int a=0;
a=~a;
printf("\nMax value: %d",-a);
printf("\nMax value: %d",INT_MAX);
return 0;
}
我得到输出:
最大值:1
最大值:2147483647
我想,(例如)如果我在 RAM 中有 0000(我知道第一位显示的是数字 pozitiv 或负数)。之后 ~ 0000 => 1111 和之后 -(1111) => 0111 ,我会得到 MAX 值。
【问题讨论】:
-
"using tilde" - 如果你想获得 int 的最大值,总是使用
INT_MAX。由于您标记了这个问题 C++,您还可以在#include <limits>之后使用numeric_limits<int>::max()(如果您喜欢过于冗长,或者如果您需要切换类型。)