簡體   English   中英

左移錯誤

[英]left shift error

我有一個unsigned long long變量,我的系統上有8個字節,我正在嘗試執行以下操作:

unsigned long long ull;
ull = timeLow;
ull |= timeHigh << 32;

我收到一個警告:左移計數> =這樣做時的類型寬度。 此外它似乎沒有考慮到時間偏移。我該如何解決這個問題?

你不是轉移ull ,你shifiting timeHigh ,然后存儲在移位的結果ull

我懷疑timeHigh是沒有大到足以存儲一個32位的移位的reults。 timeHigh一個unsigned long long ,( 編輯 ),或者只分配timeHighull ,然后轉移之前or “ING在timeLow (信用@JasonD)

timeHigh似乎是32位類型。 在32位左移后,它全部為零。 你必須在轉移之前將timeHigh轉換為很長的類型。

unsigned long long ull;
ull = timeHigh;
ull = ull << 32;
ull |= timeLow;

這是你的意思嗎?

unsigned long long timeLow = /* value */;
unsigned long long timeHigh = /* value */;
unsigned long long ull;
ull = (timeHigh << 32 | timeLow)

暫無
暫無

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

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