問題記錄:無符號數據類型,加減運算仍然是無符號
A:我開始設的unsigned char m=5; -請問m-6>等于多少?
Q:在這種情況下,無符號字符 m 的值為 5。當計算 m-6 時,由于 m 是無符號字符,所以 5-6 將被解釋為模運算。因此,5-6 等于 255(即 UINT_MAX,unsigned char 類型的最大值加1)。
檢查這個問題花了我半小時,我服了:


我還以為是keil出問題了,痛苦。。。。C語言忘完了
總結:對于無符號數據類型,加減運算仍然是無符號的。在無符號數據類型中,數學運算通常被定義為模運算,這意味著結果會回繞到 0 或最大值。因此,在無符號數據類型中,加減運算將按照模運算的規則進行。
作者QQ4577105

浙公網安備 33010602011771號