C 语言的整数类型

本文详细介绍了C语言中的整数类型,包括它们的存储方式(如short、int、long等),不同类型的存储空间大小和取值范围,以及如何通过后缀改变默认类型。此外,还讨论了溢出行为的未定义性以及整数常量的进制表示。
摘要由CSDN通过智能技术生成

整数类型概述

整数是以二进制的方式存储的.

8 种整数类型:

  1. [signed] short [int] : 占用的存储空间可能比 int 少.

  2. [signed] int : 如果占 16 位则取值范围为 [-32768, 32767], 规定取值范围最小为 [-32768,
    32767].

  3. [signed] long [int] : 占用的存储空间可能比 int 多.

  4. [signed] long long [int] : C99标准加入, 占用的存储空间可能比 long 多, 至少占 64 位, 因为 long long 类型就是为了支持 64 位机器才引入的.

  5. unsigned short [int]

  6. unsigned [int] : 如果占 16 位则取值范围为 [0, 65535].

  7. unsigned long [int]

  8. unsigned long long [int] : C99标准加入.

C 语言只规定了 short 占用的存储空间不能多于 int, long 占用的存储空间不能少于 int.

一般而言, 存储一个 int 类型要占用一个机器字长. ISO C 规定, int 类型的取值范围最小为 [-32768, 32767] (即 int 占 16 位时的取值范围).

不同整数类型所占用的内存空间大小以及各个类型表示的数值范围不同.

一般而言, 系统用一个特殊位的值表示有符号整数的正负号.

整型常量一般都默认为 int 类型 (只要该常量在 int 类型的取值范围内). 可以用整型常量后缀修改这一默认的数据类型.

一般, 十进制的整型常量按照自身数值的大小, 被认为的类型依次为: int, long, unsigned long, long long, unsigned long long.

整型常量一般都默认为十进制. 可以用前缀修改默认的进制. 0x 或 0X 表示是十六进制整数. 0 前缀表示八进制整数.

使用不同的进制数是为了方便, 不会影响数被储存的方式.

一般, 八和十六进制的整型常量按照自身数值的大小, 被认为的类型依次为: int, unsigned int, long, unsigned long, long long, unsigned long long.

long 类型的后缀: 对于十进制, 八进制和十六进制的整数而言, 如果需要将一个较小的整数视为 long 类型, 可以加后缀 l 或者 L. 在 int 占 16 位, long 占 32 位的系统中, 会将 7, 07 和 0X7 均作为 16 位存储, 将 7L, 07L 和 0X7L 均作为 32 位存储.

unsigned long 类型的后缀: UL

long long 类型的后缀: ll 或 LL.

unsigned long long 类型的后缀: ull 或 ULL.

溢出

溢出行为是未定义的, C 标准并未规定溢出规则.

常见的情况是从起始位置重新开始, 比如取值范围为 [-32768, 32767] 时, 32767+1 = -32768, 32768-1 = 32767.

整数类型在内存中的储存方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值