c语言中,int和short int 的字节位数取值范围都完全相同。。那不是多余吗。。。还有

c语言中,int和short int 的字节位数取值范围都完全相同。。那不是多余吗。。。还有还有就是int完全的包括了unsigned int,那要后者有什么用,不是也多余了吗。

这个是和平台相关的。
short不管在什么平台都是16位。
int 可能是16位或者32位。
long可能是32位或者64位。
所以,short应用范围是限定在-32768~32767之间的数。
而int 则是任意平台上保证最快存取下最大范围的数。
平时用int比较多一些。追问

你的意思是我们不要到16位那么精确的话用short就OK是吧。那么我的第二个问题呢。。你没回答呢

麻烦在帮我看一下

追答

并不是精确。 int和short的精确度是一样的,除非为了节省内存,否则很少有必须用short的情况。 大部分时候int就可以了。
unsigned int的存在,大部分时候是int范围不足,而操作对象都是非负的情况,会使用unsigned. 另外,在一些需要用到移位运算的情况,>>操作对于最高位为1时会有所区别,需要根据需要选择unsigned或者是signed。

追问

int的范围只会大于等于unsigned int 啊,为什么会范围不足。

追答

int包含负数,而unsigned只有非负数。 二者占空间相同,所以在正数范围上,unsigned是int的二倍。
比如 16位的, int是-32768~32767, 而unsigned是0~65535

追问

谢谢,懂了

谢谢谢谢谢

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网