int是與unsigned或signed相同的類型嗎?int是否與unsigned或signed相同?
回答
平原int
相同signed
相同signed int
int
S按默認簽名。
C++標準3.9.1/2:
有四個符號整型:「長整型」,「符號字符」,「短整型」,「INT」,和< ...>
C++標準3.9.1/3:
對於每個符號整數類型,有Ë xists相應的(但不同)無符號整型: 「無符號字符」,「無符號短整型」,「無符號整型」和「無符號長 整型,」 < ...>
因此,sizeof(int)
等於sizeof(unsigned)
。但boost::is_same< int, unsigned >::value
是錯誤的。
+1引用標準。 – Cumbayah 2010-08-05 12:13:10
signed int
與int
相同,並指定可以同時具有正值和負值的整數值。
unsigned int
另一方面只能有正值,所以最大正值遠大於signed int
。
實際上,*範圍*的值是完全相同的大小,它只是移位,所以最小值爲0. – 2010-08-05 11:45:03
你說得對,那是一個糟糕的選擇。固定;) – 2010-08-05 12:10:44
ints
是默認簽名的,與longs
一樣。
所以,int
,signed
和signed int
是一樣的東西。
類似地long
和signed long
是相同的。
chars
另一方面,沒有默認值。實現可以認爲它們是有符號或無符號的(許多命令行開關可供選擇)。 char
,signed char
和unsigned char
被認爲是重載決議,模板實例和其他地方的三種不同類型。
最後一句太受限制了。這不僅僅是重載解決方案,它無處不在。例如。也作爲模板參數。因此,'std :: vector
@MSalters相同的類型:好點,更新。 – 2010-08-05 13:49:49
- 1. signed/unsigned int
- 2. MISRA錯誤:字段類型應該是int,unsigned int或signed int
- 3. 如何檢查類型是否是Java中的unsigned int或signed int?
- 4. 安全地轉換unsigned和signed int
- 5. C++中signed int和unsigned short的比較
- 6. signed int to unsigned byte,反之亦然
- 7. unsigned int/signed int/long long:莫名其妙的輸出
- 8. 從unsigned long int轉換爲signed int,反之亦然
- 9. 從signed int轉換爲unsigned int而不鑄造
- 10. 在signed和unsigned int之間是否保持精確的位模式?
- 11. 是(int *)和(int [])是否相同?
- 12. char!=(signed char),char!=(unsigned char)
- 13. 調用'(std :: pair <unsigned int,unsigned int>)(unsigned int&,unsigned int)'
- 14. 如何編寫區分signed和unsigned int的泛型函數?
- 15. NSNumber類方法可以識別signed和unsigned int嗎?
- 16. 將signed int轉換爲兩個unsigned short用於重構
- 17. 爲什麼比較signed char和unsigned int不能正常工作?
- 18. 是在C字面0xffffffff的int或unsigned ++
- 19. 是否報警(unsigned int second)函數thread_safe?
- 20. 警告C4018('expression':signed/unsigned mismatch)和C4389('operator':signed/unsigned mismatch)之間的區別是什麼
- 21. '*(unsigned int *)((unsigned int)block + n * i)是什麼意思'
- 22. 理論上實現是否可以將unsigned int提升爲int?
- 23. 它是否有可能會將int *轉換爲unsigned int *
- 24. SqlDataReader是否具有與字符串鍵相同的Get *(int index)?
- 25. Java - derby - unsigned int
- 26. 負unsigned int?
- 27. encoding unsigned int
- 28. DWORD和unsigned int
- 29. unsigned long long int
- 30. modulo with unsigned int
一些(全部?)編譯器有一個開關來將默認值更改爲無符號。在MSVC中,它是/ J。 – 2010-08-05 11:43:54
供參考默認情況下,Microchip PIC控制器的CCS編譯器未經簽名。哎呀! – kenny 2010-08-05 11:45:54
/J編譯器開關影響char,而不是int。 「char」可能會或可能不會被簽名。 「char」,「signed char」和「unsigned char」總是不同的類型,不管是否有「char」被簽名。 – 2010-08-05 11:47:37