C中无符号和无符号int之间的区别

the*_*tna 32 c int unsigned

能否请你说清楚有什么区别之间unsignedunsigned int?也许一些示例代码会有所帮助.

Gra*_*and 53

unsigned是可以适用于任何类型的积分(改性剂char,short,int,long等),但其本身是相同的unsigned int.


San*_*ker 12

没有区别.unsigned并且unsigned int是同一类型的同义词(类型的无符号版本int).


Dan*_*iel 10

unsignedalone表示unsigned int.你也可以使用unsigned char等等.我不知道如果你尝试unsigned double或会发生什么unsigned float.有人知道吗?

  • @stan是有道理的.我想象的是,如果某种方式`double`和`float`可能是无符号的,那么会发生奇怪的行为.它会忽略标志位吗?也许为有效数字或其他东西添加一点精度? (2认同)
  • @Daniel:[C99 标准](http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf) 中的 6.2.5 是一本很好的书。基本上它说有浮点类型和整数类型;并且“unsigned”与浮点类型规范的任何部分都不匹配:) (2认同)
  • @Stan:C允许`float`,`double`和`long double`按照IEEE 754的规定实现,但它不需要它. (2认同)