Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
INT#u MIN,的真正价值到底是什么;C语言中的CHAR_MIN、LONG_MIN等等?_C - Fatal编程技术网

INT#u MIN,的真正价值到底是什么;C语言中的CHAR_MIN、LONG_MIN等等?

INT#u MIN,的真正价值到底是什么;C语言中的CHAR_MIN、LONG_MIN等等?,c,C,今天有一个问题让我非常困惑。当我阅读附录B,B11,C编程语言的内容时,我发现它说INT_MIN是-32767,INT_MIN也是32767。但是,事实上,-INT_MAX应该比INT_MAX大1,不是吗? 我试图在网上找到答案,找到了一些关于INT_MAX被定义为(-INT_MAX-1)的信息,还有一些其他信息与TCPL相同。 在我的程序中,INT_MIN的打印值全部为-2147483648,并且比-INT_MAX大1; 那么,C编程语言中有什么错误吗 #include <stdio.h

今天有一个问题让我非常困惑。当我阅读附录B,B11,C编程语言的内容时,我发现它说INT_MIN是-32767,INT_MIN也是32767。但是,事实上,-INT_MAX应该比INT_MAX大1,不是吗? 我试图在网上找到答案,找到了一些关于INT_MAX被定义为(-INT_MAX-1)的信息,还有一些其他信息与TCPL相同。 在我的程序中,INT_MIN的打印值全部为-2147483648,并且比-INT_MAX大1; 那么,C编程语言中有什么错误吗

#include <stdio.h>
#include <limits.h>
int main()
{
    signed int i1, i11;     
    printf("signed int:\n%d, %d\n", INT_MIN, INT_MAX);
    i1 = i11 = 6;:
    for(;i1 <= i11; --i1);
    printf("%d, ", ++i1);
    for(;i1 >= i11; ++i1);
    printf("%d\n", --i1);
    return 0;
}  
#包括
#包括
int main()
{
签名int i1、i11;
printf(“签名整数:\n%d,%d\n”,整数最小值,整数最大值);
i1=i11=6;:
对于(;i1=i11;++i1);
printf(“%d\n”,--i1);
返回0;
}  

您在定义之前漏掉了这句话:

所示最小震级应替换为具有相同符号的实施定义震级

所以这些定义只是极小值

“但是,事实上,-INT_MAX应该比INT_MAX大1,不是吗?”


这是2-互补体系结构的特性。但它不是C的一个属性,它也可以用于其他体系结构。

for(;i1
for(;i1
for(;i1
for(;i1)它用于计算有符号整数的最小整数。整数减去1的最大数将是a正数rint\u MIN必须为-32768@SouravGhosh,这会更清楚吗:`为了(;i12的补码不是一种体系结构,而是一种编码,因此是一种人工解释,用于表示有符号整数值。仅供参考:我的主要优点是add/sub不需要显式处理符号,即它们不必关心符号。此外,硬件溢出检测的实现非常简单(内部溢出标志只是CPU的一种礼貌,有助于检测此类情况)。其他操作更复杂,因此,例如IEEE浮点不使用它。哦,我知道了。非常感谢!