C语言:signed和unsigned的区别

  参考博客:https://blog.csdn.net/wen381951203/article/details/79922220

signed和unsigned用于修饰整数类型(包括char,从ANSI C89标准开始支持)

signed表示有符号,unsigned表示无符号。对应的有符号数的最大取值要比无符号的小约一半,因为最高一位被用来表示符号

默认的int、short、long、long long为有符号数,也就是说,int等价于signed int,short等价于signed short,long等价于signed long,long long等价于signed long long,但是char本身是signed char还是unsigned char,取决于语言的实现(编译器)

范围列表如下:
signed char:[-2^7, 2^7)即[-128, 128)
unsigned char:[0, 2^8)即[0, 256)
signed n位整数:[-2^(n-1),2^(n-1))
unsigned n位整数:[0, 2^n)
注意整数类型占多少空间是不确定的,只能保证sizeof(shor)<=sizeof(int)<=sizeof(long)。一般32位平台上,int和long为32位,short为16位,long long为64位

 

你可能感兴趣的:(C语言:signed和unsigned的区别)