signed和unsigned区别

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(short) <= sizeof(int) <= sizeof(long)。

在32位的设备平台上,short为16位(2字节), int为32位(4字节),long为32位(4字节),long long为64位(8字节)。

在64位的设备平台上,short为16位(2字节), int为32位(4字节),long为64位(8字节),long long为64位(8字节)。

  • 17
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值