整型数据类型

C数据类型 最小值 最大值
[signed] char -128 127
unsigned char 0 255
short -32768 32767
unsigned short 0 65535
int -2 147 483 648 2 147 483 647
unsigned 0 4 294 967 295
long -2 147 483 648 2 147 483 647
unsigned long 0 4 294 967 295
int32_t -2 147 483 648 2 147 483 647
uin32_t 0 4 294 967 295
int64_t -9 223 372 036 854 775 808 9 223 372 036 854 775 807
uint64_t 0 18 446 744 073 709 551 615

32位程序上C语言整型数据类型的典型取值范围

C数据类型 最小值 最大值
[signed] char -128 127
unsigned char 0 255
short -32768 32767
unsigned short 0 65535
int -2 147 483 648 2 147 483 647
unsigned 0 4 294 967 295
long -9 223 372 036 854 775 808 9 223 372 036 854 775 807
unsigned long 0 18 446 744 073 709 551 615
int32_t -2 147 483 648 2 147 483 647
uin32_t 0 4 294 967 295
int64_t -9 223 372 036 854 775 808 9 223 372 036 854 775 807
uint64_t 0 18 446 744 073 709 551 615

64位程序上C语言整型数据类型的典型取值范围

图中的注意事项:
取值范围不是对称的———负数的范围比整数的范围大1.当我们考虑如何表示负数的时候,会看到为什么会是这样子。

C数据类型 最小值 最大值
[signed] char -127 127
unsigned char 0 255
short -32767 32767
unsigned short 0 65535
int -32767 32767
unsigned 0 65535
long -2 147 483 647 2 147 483 647
unsigned long 0 4 294 967 295
int32_t -2 147 483 648 2 147 483 647
uin32_t 0 4 294 967 295
int64_t -9 223 372 036 854 775 808 9 223 372 036 854 775 807
uint64_t 0 18 446 744 073 709 551 615

C语言的整型数据类型的保证的取值范围。C语言标准要求这些数据类型必须至少具有这样的取值范围

C语言标准定义了每种数据类型必须能够表示的最小的取值范围。如上图所示,它的取值范围与32位和64位所示的典型实现一样或者小一些。特别地,除了固定大小的数据类型是例外,我们看到它们只要求正数和负数的取值范围是对称的。此外,数据类型int可以用2个字节的数字来实现。这几乎退到了16位机器的时代。还可以看到,long的大小可以用4个字节的数字来实现,对32位程序来说这是很典型的。固定大小的数据类型保证数值的范围与32位程序上C语言整型数据类型的典型取值范围一致。包括负数与正数的不对称性。

C语言支持多种整型数据类型——表示有限范围的整数。如图所示,其中给出了“典型”32位和64位机器的取值范围。每种类型都能用关键字来指定大小,这些关键字包括 c h a r 、 s h o r t 、 l o n g char、short、long char、short、long,同时还可以指示被表示的数字是非负数(声明为 u n s i g n e d unsigned unsigned),或者可能是负数(默认即可)。为这些不同的大小分配的字节数可根据程序编译为32位gcc -m32 prog.c或者64位gcc -m64 prog.c而有所不同。根据字节分配,不同的大小所能表示的值的范围是不同的。特别注意,这里给出来的唯一一个与机器有关的取值范围是大小指示符long的。大多数64位的机器使用8个字节的表示。比32位机器上使用的4个字节的表示的取值范围大的多

补充:字数据大小

每台计算机都有一个字长(word size),指明指针数据的标称大小(nominal size)。
因为虚拟地址是以这样的一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址空间的最大大小。也就是说,对于一个字长为 w w w位的机器而言,虚拟地址的范围位 0 − 2 w − 1 0 - 2^w-1 0−2w−1,程序最多访问 2 w 2^w 2w个字节
最近这些年,出现了大规模的从32位字长机器到64位字长机器的迁移。这种情况首先出现在为大型科学和数据库应用设计的高端机器上,之后是台式机和笔记本电脑,最近则出现在智能手机的处理器上。32位字长限制虚拟地址空间为4千兆字节(写作4GB),也就是说,刚刚超过 4 × 1 0 9 4\times10^9 4×109个字节。扩展到64位字长使得虚拟地址空间为16EB,大约是 1.84 × 1 0 19 1.84\times 10^{19} 1.84×1019字节

基本c数据类型的典型大小(以字节为单位)。分配的字节数受如何编译的影响而变化。

整型数据类型及其取值范围详解相关推荐

  1. MySQL数据库的数据类型以及取值范围详解

    主要包括以下五大类: 整数类型:BIT.BOOL.TINY INT.SMALL INT.MEDIUM INT. INT. BIG INT 浮点数类型:FLOAT.DOUBLE.DECIMAL 字符串类 ...

  2. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

    python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...

  3. Java基本数据类型默认值和取值范围详解

    Java基本数据类型有哪些?Java中的基本数据类型有,byte.short.int.long.float.double.char和.boolean这些,接下我们来了解一下它们的默认值和取值范围是怎样 ...

  4. mysql数据库tinyint_mysql数据库TINYINT取值范围详解

    分享下mysql中TINYINT的取值范围,很基础的一些内容. 在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127.无符号的范围是0到255(见官方<MySQL ...

  5. 转整型_SPI转can芯片CSM300详解、Linux驱动移植调试笔记

    一口君最近移植了一款SPI转CAN的芯片CSM300A,在这里和大家做个分享. 一.CSM300概述 CSM300(A)系列是一款可以支持 SPI / UART 接口的CAN模块. 1. 简介 CSM ...

  6. c语言 long类型取值范围,详解 IOS下int long longlong的取值范围

    详解 IOS下int long longlong的取值范围 32bit下: unsigned int 0-4294967295 int -2147483648-2147483647 unsigned ...

  7. 微信小程序中form 表单提交和取值实例详解

    2019独角兽企业重金招聘Python工程师标准>>> 我们知道,如果我们直接给 input 添加 bindinput,比如:<input bindinput="on ...

  8. Map的取值方式详解

    在Map集合中,有如下定义:           values():方法是获取集合中的所有的值----没有键,没有对应关系,           KeySet():将Map中所有的键存入到set集合中 ...

  9. int型数据类型为什么取值范围是-2^31~2^31-1

    正数在计算机中表示为原码,最高位为符号位: 1的原码为0000 0000 0000 0000 0000 0000 0000 0001 2147483647的原码为0111 1111 1111 1111 ...

最新文章

  1. Zookeeper 在Hadoop中的应用
  2. oracle表格颜色,如何在oracle中使用光标更新特定颜色
  3. 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
  4. 使用Docker容器和Java EE进行持续交付
  5. 这是我的卡,去买个包吧
  6. OpenCV4每日一练day14:光流法跟踪移动物体
  7. 《Python入门到精通》文件操作
  8. properties配置文件在idea中默认utf-8编码可能会乱码的解决
  9. 大文件数据导出(后台执行,自动生成)
  10. 网页与服务器 — 重定向常见异常状态码
  11. Activity 关于生命周期一些问题的实践验证
  12. 传输层的端口与TCP标志中的URG和PSH位
  13. PLC+智能网关,实现HTTP+JSON/XML+POST/GET请求与解析
  14. C# 获取文件名和扩展名(后缀名)
  15. 如何在地图上按地址搜索位置
  16. UltraISO软碟通制作U盘时显示:请格式化U盘后再试。
  17. Qt数据库应用18-横向纵向排版
  18. GNN理论入门和小实践——从卷积讲起
  19. ctfshow 月饼杯(第二届) 部分WriteUp
  20. 关闭ubuntu18.04软键盘及多指操作

热门文章

  1. 3个月GMV近4000万,雅鹿在快手找到了品牌自播风向标
  2. ceil函数和round函数的用法
  3. 在线公开课 | 教你如何自行搭建一个威胁感知大脑?
  4. C++知识库(可能包含一些非C++这门语言的知识体系、Java知识)
  5. 在STM32F103C8T6上使用RT_Thread Nano移植控制台和Finsh
  6. 固态移动硬盘“函数不正确”
  7. 正则表达式排除指定字符串
  8. require与import的区别和使用
  9. 数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合
  10. Docker网络配置