C++ 中的 INT

C++ 中的 INT

使用 INT_MIN 和 INT_MAX 來訪問 C++ 中特定於型別的限制

使用 INT_MIN 和 INT_MAX 在 C++ 中生成隨機數

本文將演示有關如何在 C++ 中利用 INT_MAX 和 INT_MIN 巨集表示式的多種方法。

使用 INT_MIN 和 INT_MAX 來訪問 C++ 中特定於型別的限制

C++ 語言定義了多種內建資料型別,並規定了它們應占用多少記憶體以及相應的最大/最小值。像整數這樣的資料型別通常用於需要考慮其可能出現的最大值和最小值的計算中。儘管限制取決於特定型別的儲存大小,但這些限制會根據硬體平臺而有所不同。因此,我們需要使用固定的控制代碼訪問這些值,因此需要使用巨集表示式 INT_MIN 和 INT_MAX。這些對應於 signed int 資料型別的最小值和最大值。下面的示例演示了 標頭檔案下可​​用的多個巨集表示式。

#include

#include

int main() {

printf("CHAR_BIT = %d\n", CHAR_BIT);

printf("MB_LEN_MAX = %d\n", MB_LEN_MAX);

printf("\n");

printf("CHAR_MIN = %+d\n", CHAR_MIN);

printf("CHAR_MAX = %+d\n", CHAR_MAX);

printf("SCHAR_MIN = %+d\n", SCHAR_MIN);

printf("SCHAR_MAX = %+d\n", SCHAR_MAX);

printf("UCHAR_MAX = %u\n", UCHAR_MAX);

printf("\n");

printf("SHRT_MIN = %+d\n", SHRT_MIN);

printf("SHRT_MAX = %+d\n", SHRT_MAX);

printf("USHRT_MAX = %u\n", USHRT_MAX);

printf("\n");

printf("INT_MIN = %+d\n", INT_MIN);

printf("INT_MAX = %+d\n", INT_MAX);

printf("UINT_MAX = %u\n", UINT_MAX);

printf("\n");

printf("LONG_MIN = %+ld\n", LONG_MIN);

printf("LONG_MAX = %+ld\n", LONG_MAX);

printf("ULONG_MAX = %lu\n", ULONG_MAX);

printf("\n");

printf("LLONG_MIN = %+lld\n", LLONG_MIN);

printf("LLONG_MAX = %+lld\n", LLONG_MAX);

printf("ULLONG_MAX = %llu\n", ULLONG_MAX);

printf("\n");

return EXIT_SUCCESS;

}

輸出:

CHAR_BIT = 8

MB_LEN_MAX = 16

CHAR_MIN = -128

CHAR_MAX = +127

SCHAR_MIN = -128

SCHAR_MAX = +127

UCHAR_MAX = 255

SHRT_MIN = -32768

SHRT_MAX = +32767

USHRT_MAX = 65535

INT_MIN = -2147483648

INT_MAX = +2147483647

UINT_MAX = 4294967295

LONG_MIN = -9223372036854775808

LONG_MAX = +9223372036854775807

ULONG_MAX = 18446744073709551615

LLONG_MIN = -9223372036854775808

LLONG_MAX = +9223372036854775807

ULLONG_MAX = 18446744073709551615

使用 INT_MIN 和 INT_MAX 在 C++ 中生成隨機數

隨機數通常是在某個固定範圍之間生成的。具有數字資料型別限制以相應地指定範圍引數,並且不會溢位生成的結果,這很有用。以下示例程式碼利用 uniform_int_distribution 來限制所生成數字的範圍。在這種情況下,我們指定了 INT_MAX 和 INT_MIN 值以從最大可用範圍中檢索整數。

#include

#include

#include

#include

using std::cout;

using std::endl;

using std::setprecision;

int main() {

std::random_device rd;

std::default_random_engine eng(rd());

std::uniform_int_distribution distr(INT_MIN, INT_MAX);

for (int n = 0; n < 6; ++n) {

cout << distr(eng) << "\n";

}

cout << endl;

return EXIT_SUCCESS;

}

-895078088

1662821310

-636757160

1830410618

1031005518

-438660615

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe

相关推荐

天猫皖寿堂食品旗舰店是正品吗?
365直播电视

天猫皖寿堂食品旗舰店是正品吗?

📅 07-21 👁️ 7089
无意识经常进入发呆状态的原因
365直播电视

无意识经常进入发呆状态的原因

📅 08-15 👁️ 9560
英雄杀怎么双开、多开?英雄杀双开、多开管理器使用图文教程
无意识经常进入发呆状态的原因
365直播电视

无意识经常进入发呆状态的原因

📅 08-15 👁️ 9560
亲爱的你究竟去了哪里歌曲,原唱歌词及MV欣赏,了解这首歌曲的故事背景
免费的15款在线互动数学游戏,从小学到高中,适合各年级