没有什么比signed和unsigned的区别更无味了。unsinged数据类型似乎没有存在的必要。
一、unsigned可以提供更大的正数范围
反对:对于小数据来说,signed的范围就足够了;对于大数据来说,signed和unsigned所提供的范围其实几乎没什么区别。Int8,
Int16, Int32, Int64,这样的变化才是有实际意义的范围延伸。如果int32不够用了,通常unsigned
int32也不会够用;直接使用int64将会是通常的解决方案。
二、unsigned可以表达特定的数据涵义
反对:比如size或者index,-1固然没有意义,但是unsigned的0xFFFFFFFF又何尝有什么意义呢?如果你说0xFFFFFFFF有
意义,那么0xFFFFFFFF+1还有意义吗?如果你能保证数据不越过0xFFFFFFFF,我们同样能保证数据不越过0x7FFFFFFF。
三、有时候数据范围大一倍就是很大的差距
这个我不好直接反对,不过有谁能举一个具体的例子来说明一下这个情况么?
由于signed和unsigned的区别所带来的工作效率下降,我倒是可以举出很多例子:)