c语言long和long long的取值范围
溢出和取值范围
C语言的整型溢出问题
整数溢出
- int、long int 、long long int 占用字节
《C和指针》中写过:long与int:标准只规定long不小于int的长度,int不小于short的长度。
double与int类型的存储机制不同,long int的8个字节全部都是数据位,而double是以尾数,底数,指数的形式表示的,类似科学计数法,因此double比int能表示的数据范围更广。
long long在win32中是确实存在,长度为8个字节;定义为LONG64。
为什么会出现long int呢?在win32现在系统中,长度为4;在历史上,或者其他某些系统中,int长度为2,是short int。
即便是long long,在TI的有款平台中,长度为5也就是说,每种类型长度,需要sizeof才知道,如果可能,最好用union看看里面的数据,可以消除一些类型的假象长度。
类型名称 | 字节数 | 取值范围 |
---|---|---|
signed char | 1 | -128~+127 |
short int | 2 | -32768~+32767 |
int | 4 | -2147483648~+2147483647 |
long int | 4 | -2147483648~+2141483647 |
long long long int | 8 | -9223372036854775808~+9223372036854775807 |
unsigned int (unsigned long)
4字节8位可表达位数:2^32=42 9496 7296
范围:0 ~ 42 9496 7295 (42*10^8)
int (long)
4字节8位可表达位数:2^32=42 9496 7296
范围:-21 4748 3648 ~ 21 4748 3647 (21*10^8)
long long (__int64)
8字节8位可表达位数:2^64=1844 6744 0737 0960 0000
范围:-922 3372 0368 5477 5808 ~ 922 3372 0368 5477 5807 (922*10^16)
unsigned long (unsigned __int64)
8字节8位可表达位数:2^64=1844 6744 0737 0960 0000
范围:0 ~ 1844 6744 0737 0955 1615 (1844*10^16)
最大值、最小值
在#include存有各个类型的最大值和最小值
表示 | 类型 |
---|---|
CHAR_MIN | char的最小值 |
SCHAR_MAX | signed char 最大值 |
SCHAR_MIN | signed char 最小值 |
UCHAR_MAX | unsigned char 最大值 |
SHRT_MAX | short 最大值 |
SHRT_MIN | short 最小值 |
USHRT_MAX | unsigned short 最大值 |
INT_MAX | int 最大值 |
INT_MIN | int 最小值 |
UINT_MAX | unsigned int 最大值 |
UINT_MIN | unsigned int 最小值 |
LONG_MAX | long最大值 |
LONG_MIN | long最小值 |
ULONG_MAX | unsigned long 最大值 |
FLT_MANT_DIG | float 类型的尾数 |
FLT_DIG | float 类型的最少有效数字位数 |
FLT_MIN_10_EXP | 带有全部有效数的float类型的负指数的最小值(以10为底) |
FLT_MAX_10_EXP | float类型的正指数的最大值(以10为底) |
FLT_MIN | 保留全部精度的float类型正数最小值 |
FLT_MAX | float类型正数最大值 |
c语言long和long long的取值范围相关推荐
- C语言整型——整型的取值范围:(一)无符号整型的取值范围
文章目录 `limits.h` 的不足 有符号整型的编码 计算方法 需要注意的地方 以 int 传递 short 取模位移 limits.h 的不足 通过库 limits.h 中的常量,我们可以得知绝 ...
- c语言long和long long的取值范围,转义字符
溢出和取值范围 C语言的整型溢出问题 int.long int .long long int 占用字节 <C和指针>中写过:long与int:标准只规定long不小于int的长度,int不 ...
- C语言——数据类型、基本数据类型的取值范围
目录 一.数据类型 1.基本类型 2.sizeof运算符 3.signed和unsigned 二.取值范围 1.比特位 2.字节 3.符号位 4.补码 5.基本数据类型的取值范围 一.数据类型 1.基 ...
- c语言 ——int16,c语言中int取值范围为16位指的是什么16位
匿名用户 1级 2013-10-20 回答 1.c语言中int取值范围为16位指的是什么16位 计算机用二进制表示数值,最小单位就是位(bit),可以储存0或1,16位就是有16个储存0或1的位,其中 ...
- C语言中不同类型的取值范围
C语言中的不同类型的取值范围 前言 C语言中,我们知道最基本的数据类型有int整型,float和double浮点型,char字符型,在计算机里,他们的取值并不是任意和无限的,都有相应的取值范围,那么计 ...
- c语言字母的范围,C语言字符-C语言char-C语言字符取值范围-嗨客网
C语言字符教程 '' 包围. C语言字符定义详解 语法 char varname = value; 参数 参数 描述 char 定义字符类型变量使用的类型. varname 变量名. value 可选 ...
- 整型数据类型及其取值范围详解
整型数据类型 C数据类型 最小值 最大值 [signed] char -128 127 unsigned char 0 255 short -32768 32767 unsigned short 0 ...
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》
Python语言用urllib.request模块抓取页面非常简单,再将抓取的页面内容用re模块解析,找出自己想要的东西.下面就就此方法来抓取网易公开课之<麻省理工学院公开课:算法导论>, ...
最新文章
- 程序员吐槽:在阿里工作带来光环,在京东却带来负面影响!
- java把一段英文拆成单词_Java Word Break(单词拆解)
- bzoj4830 hnoi2017 抛硬币
- python编写程序-30分钟学会用Python编写简单程序
- PHP7天前的时间戳
- 万网mysql中文乱码_Linux下MySQL出现乱码的解决方法-阿里云开发者社区
- P4198 楼房重建 线段树 + 区间合并
- C#设计模式之8-组合模式
- (转)Android中JNI编程的那些事儿
- 力扣-48 旋转图像
- DHCP中继原理与配置
- 如何在arcmap引用谷歌数据
- excel锁定前几行,无法选择和编辑
- air应用接入移动mm弱联网平台
- dns服务器配置错误无法修复,电脑DNS错误修复的方法教程
- Invalid hook call. Hooks can only be called inside of the body of a function
- Java File删除文件夹及其子文件
- linux 启用dhcp服务器,linux下DHCP服务器配置
- 楼宇控制服务器显示FT,【产品介绍】楼宇智控系统
- 图像处理中的傅立叶变换