您現在的位置是:首頁 > 娛樂

程式編譯錯誤:warning C4293: “<<”: Shift 計數為負或過大

由 尖子生管理員小宇 發表于 娛樂2022-09-20
簡介將一個int型別的資料進行向右移動33位的操作這樣編譯就會出現警告:程式編譯錯誤:warning C4293: “<解決方法一個int只有32位,而你要讓他向右移動33位,這樣的話就超出其相關的取值範圍了,因此就會有這個編譯警告的

電腦warning怎麼辦

程式編譯錯誤:warning C4293: “<<”: Shift 計數為負或過大

問題:程式中的警告到底要不要處理

對於開發過程中,我們總是先編譯然後再進行相關的除錯或者斷點除錯與追蹤。

編譯的時候,如果出現編譯error那麼程式就不能進行除錯了。

因此編譯錯誤要提前處理。但是如果編譯中提示編譯警告,我們還能不能直接除錯呢?

答案是可以的,但是有些編譯警告,你需要進行解決,否則實現的效果就會和你的理論演算法執行結果不同了。

如進行下面的位移操作:

m_Datam8。DataModels。u30 = ((ui。tableWidget_2->item(row, 4)->text()。toInt()) >> 33);

將一個int型別的資料進行向右移動33位的操作

這樣編譯就會出現警告:

程式編譯錯誤:warning C4293: “<<”: Shift 計數為負或過大

程式編譯錯誤:warning C4293: “<<”: Shift 計數為負或過大

解決方法

一個int只有32位,而你要讓他向右移動33位,這樣的話就超出其相關的取值範圍了,因此就會有這個編譯警告的!

如果不重視,那麼當你輸入超過int位元組的資料時,獲取的結果就錯誤了。

解決方法:將int型別的資料轉換為double或者long型別的資料,然後再進行相關的移位操作即可。

程式編譯錯誤:warning C4293: “<<”: Shift 計數為負或過大

推薦文章