gpt4 book ai didi

c++ - LONG_MAX Cygwin 的大小

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:27 27 4
gpt4 key购买 nike

我用 C++ Primary Plus 写了关于变量大小的程序这是代码:

#include <iostream>
#include <climits>
using namespace std;

int main() {
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;

// wielkosc
cout << "int is " << sizeof (int) << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes."<< endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_llong << " bytes." << endl;
cout << endl;

cout << "Maximum values: "<< endl;
cout << "int: " << n_int << endl;
cout << "short: " << n_short << endl;
cout << "long: " << n_long << endl;
cout << "long long: " << n_llong<< endl << endl;
cout << "Minimum int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl;
return 0;
}

当我在 Eclipse IDE 中通过 Cygwin 编译并运行它时,告诉我 LONG_MAX = 9223372036854775807,这不是真的,我做错了什么?谢谢。

实际输出:

int is 4 bytes.short is 2 bytes.long is 8 bytes.long long is 8 bytes.Maximum values: int: 2147483647short: 32767long: 9223372036854775807long long: 9223372036854775807Minimum int value = -2147483648Bits per byte = 8

预期输出:

int is 4 bytes.short is 2 bytes.long is 8 bytes.long long is 8 bytes.Maximum values: int: 2147483647short: 32767long: 2 147 483 647long long: 9223372036854775807Minimum int value = -2147483648Bits per byte = 8

最佳答案

为什么你这么确定 LONG_MAX != 9223372036854775807?这对我来说似乎不错,因为 2^63 -1 == 9223372036854775807。这意味着 longs 在您的实现中是 64 位,第一位用作符号位。请记住,标准并未准确指定所有不同数据类型的大小 - 在 Visual Studio 的编译器上,long 与 int 的大小相同,这有点烦人;)

关于c++ - LONG_MAX Cygwin 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com