signed和unsigned区别

本文详细解释了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字节)。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值