簡體   English   中英

對於“long”類型,整數常量太大

[英]integer constant is too large for “long” type

我用以下算法創建隨機整數:

int random;

int i;
for (i = 0; i < RANDOM_COUNT; i++) {
    random = (((int) rand() << 0) & 0x0000FFFFd)
            | (((int) rand() << 16) & 0xFFFF0000d);
    fprintf(outputFile, " %d\n", random);
}

我收到以下警告:

warning: integer constant is too large for "long" type

在這條線上:

| (((int) rand() << 16) & 0xFFFF0000d);

我正在使用GCC 3.4.3來編譯代碼。

有誰知道操作的哪一部分觸發了警告?

有誰知道操作的哪一部分[ (((int) rand() << 16) & 0xFFFF0000d); ]是在觸發警告?

是的,它是0xFFFF0000d ,因為它的大小為36位。 請注意,此數字等於0xFFFF0000D 你可能意味着0xFFFF0000

同樣, 0x0000FFFFd等於0x0000FFFFD 你可能意味着0x0000FFFF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM