我正在学习C++来自专业的JavaScript多年来.我知道之间的区别signed和unsigned,但我不知道我理解为什么他们甚至存在.是为了表演还是其他什么?
小智 5
因为他们是需要的.
signed 存在类型,因为有时候想要使用负数.
unsigned 存在类型是因为对于某些操作,例如按位逻辑和移位,它们使用起来更清晰(例如,您不必担心符号位的表示方式等)
您可以争辩说,对于无符号值,您可以获得比等效签名类型更大的正范围,但主要原因是它们允许在负数字很少或没有意义的域中映射概念.例如,容器的大小永远不会是负数.通过使用在类型中变为显式的无符号类型.
然后,两者的存在,以及隐含的转换会引发一系列不同的问题......