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