2013-02-17 74 views
0

爲什麼以下行C++和 - (無符號整型)

auto k = -10u; 

返回K = 4294967286?不應該它typecast - 10未簽名爲有符號整數?

+2

爲什麼會產生一元的* *'-'改變其操作數的類型?應用於某種數字類型的所有其他運算符都返回相同類型。 – 2013-02-17 15:55:22

+1

@BasileStarynkevitch,爲什麼不呢? – RiaD 2013-02-17 16:06:40

+0

因爲大多數C++運算符會給出與其操作數相同類型的結果。你爲什麼要爲一元'-'做例外?不是C++已經太複雜了? – 2013-02-17 16:07:42

回答

8

不應該。

- (無符號類型)是無符號類型。

任何操作適用於同一類型的內置整數有結果

相關問題