簡體   English   中英

為什么leetcode的負數模運算符= 0?

[英]Why is leetcode modulo operator of negative numbers = 0?

我正在研究 c++ 中有關 leetcode 的練習編碼問題,我發現在負數上使用模運算符返回 0 而它不應該返回 0。對於上下文,我正在測試 -4 % 3,它返回 0。有誰知道為什么會這樣? 這是我在 leetcode 上做 -4%3 的結果圖片。

這是因為在 C++ 中,當 operator % 的一個操作數是 unsigned long long 時,其他操作數也會轉換為它。

無符號數不能為負數。

因此int -4被隱式轉換為unsigned long long 18446744073709551612恰好除以 3。

暫無
暫無

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

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