首頁 > 後端開發 > C++ > 在 C 中將負值賦給無符號變數時會發生什麼事?

在 C 中將負值賦給無符號變數時會發生什麼事?

Mary-Kate Olsen
發布: 2024-12-18 13:18:16
原創
629 人瀏覽過

What Happens When You Assign a Negative Value to an Unsigned Variable in C  ?

將負值賦給無符號變數:會發生什麼事?

在C 中,如果您嘗試將負值賦給無符號變量,例如:

unsigned int nVal = 0;
nVal = -5;
登入後複製

行為可以是

解釋

依C 標準第4.7 節conv.integral:

「如果目標類型是無符號的,則結果value 是與來源整數一致的最小無符號整數(模2n,其中n 是用來表示無符號類型的位數)。結果相當於 (-5 2

32

) 或 4294967291。這是因為 -5 的補碼表示與 4294967291 的位元表示相同。 簡而言之,為無符號變數分配負值不會導致溢位或異常。相反,它會環繞為等效的正無符號值。

注意:

雖然此行為在 C 中定義良好,但並未被廣泛理解。使用無符號變數時,重要的是要意識到這種潛在的陷阱。

以上是在 C 中將負值賦給無符號變數時會發生什麼事?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板