的C++入門的說:在類型文字,無符號負數
我們可以獨立指定signedees和整體 文字的大小。如果後綴包含U,則文字具有無符號的 類型,因此具有U後綴的十進制,八進制或十六進制文字具有最小類型的無符號整數 ,無符號長整型或無符號長整型 ,其中文字的值符合
當一個聲明
int i = -12U;
方式我明白它是-12轉化成unsigned
版本的本身(4294967284
),然後分配給int
,由於翻滾而產生非常大的正數。
這似乎沒有發生。請問我錯過了什麼?
cout << i << endl; // -12
沒錯。所以-12U變成4294967284,那麼應該把4294967284分配給一個int。這不是它發生的情況嗎? – JAM 2012-08-18 16:46:07
4294967284太大而無法放入int,因此它迴繞到負值。 – 2012-08-18 16:46:47
哦,我明白了,有道理。謝謝Vaughn! – JAM 2012-08-18 16:47:23