首頁 >後端開發 >C++ >當「long」資料型別不足時,「LL」字尾如何能夠在 C/C 中處理大整數值?

當「long」資料型別不足時,「LL」字尾如何能夠在 C/C 中處理大整數值?

DDD
DDD原創
2024-11-07 10:28:03992瀏覽

How does the `LL` suffix enable handling large integer values in C/C   when the `long` data type is insufficient?

C/C 中的long long

此程式碼片段示範了C/C 中long long 資料類型的使用:

#include <stdio.h>

int main()
{
    int  num1 = 1000000000;
    long num2 = 1000000000;
    long long num3;
    long long num4 = ~0;

    printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3));
    printf("%d %ld %lld %llu", num1, num2, num3, num4);
    return 0;
}

在將註解行取消註解的情況下編譯程式碼時(分配了一個對於long 資料型別來說太大的值),出現錯誤:

error: integer constant is too large for long type
這是因為值100000000000 是對於long 資料型別來說太大,編譯器需要一個後綴來明確指定long long 資料型別。若要解決此問題,請在文字中加入 LL 字尾:

long long num3 = 100000000000LL;
LL 字尾表示文字應視為 long long 值。當程式碼被編譯和執行時,它會產生大於 10000000000 的值,這說明了 long long 資料類型的擴展範圍。

以上是當「long」資料型別不足時,「LL」字尾如何能夠在 C/C 中處理大整數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn