C语言中各个数据类型的取值范围
因为CPU的差异,各系统中的数据类型所占的字节数(bytes)不同,二进制位数(bit)也不同。那么怎样才能知道自己系统的数据类型的字节数,位数呢?
授之以鱼不如授之以渔,大家可以自己从电脑里获取这些信息。
首先我们知道1个字节等于8个位,可以用sizeof()关键字设计以下程序解决:
/*获取当前操作系统的字节数(bytes)和位数(bit)*/
#include<stdio.h>
int main(void)
{
printf("int:bytes %d;bit %d", sizeof(int), sizeof(int) * 8);
return 0;
}
由此可得知楼主系统的整数(int)所占字节数是4,位数为32
而取值范围则可以用极限值符号(极限值符号定义在 limits.h 头文件中,以下会详细介绍)来获得
下面以char类型为例:
/*获取char数据类型的取值范围*/
#include<stdio.h>
#include<limits.h>
int main(void)
{
printf("char:MIN %d;MAX %d", CHAR_MIN, CHAR_MAX);
return 0;
}
有符号整数类型
类型名称 字节数 取值范围
signed char 1 -2^7 ~ 2^7-1
short int 或 short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long int 或 long 4 -2^31 ~ 2^31-1
long long int 或 long long 8 -2^63 ~ 2^63-1
无符号整数类型
类型名称 字节数 取值范围
unsigned char 1 0 ~ 2^8
unsigned short int 或 unsigned short 2 0 ~ 2^16
unsigned int 4 0 ~ 2^32
unsigned long int 或 unsigned long 4 0 ~ 2^32
unsigned long long int 或 unsigned long long 8 0 ~ 2^64
浮点类型
类型名称 字节数 取值范围
float 4 -/+3.4e38(精确到6位小数)
double 8 -/+1.7e308(精确到15位小数)
long double 12 -/+1.19e4932(精确到18位小数)
极限值符号
表示有符号整数类型的极限值符号
类型名称 下限 上限
char CHAR_MIN CHAR_MAX
short SHRT_MIN SHRT_MAX
int INT_MIN INT_MAX
long LONG_MIN LONG_MAX
long long LLONG_MIN LLONG_MAX
表示无符号整数类型的极限值符号
类型名称 下限 上限
unsigned char 0 UCHAR_MAX
unsigned short 0 USHRT_MAX
unsigned int 0 UINT_MAX
unsigned long 0 ULONG_MAX
unsigned long long 0 ULLONG_MAX
表示浮点类型的极限值符号
类型名称 下限 上限
float FLT_MIN FLT_MAX
double DBL_MIN DBL_MAX
long double LDBL_MIN LDBL_MAX
C语言中各个数据类型的取值范围的更多相关文章
- mysql中数据类型的取值范围
mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下: 1.bigint 从 -2^63 (-9223372036854775808) 到 2^ ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- hibernate的dao中参数的传递取值
hibernate的dao中参数的传递取值 private Query setParameter(Query query, Map<String, Object> map) { if (m ...
- 关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)
先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125 ...
- 了解Java基本数据类型的取值范围
拿byte类型做栗子 一个字节是8位二进制数,然后最高位会用来作为符号位.正数计算机是存的原码,负数是存的补码. 也就说byte正数最大是0111 1111,转化为十进制是:127(这就是byte的上 ...
- c#利用反射实现对类中的常量进行取值和对应常量的注释
C#利用反射实现对类中的常量进行取值和对应常量的注释 项目示例:https://gitee.com/dhclly/IceDog.GenerateErrorCode 因为业务需要,项目中有大量的错误码, ...
- Java基础:8种基本数据类型,取值范围和储存字节说明。
Java中,一共有8种基本数据类型: 4种整数型:int,short,long,byte. 2种浮点型:float,double. 1种字符类型:char. 1种表示真值的类型:boolean. [S ...
- java数据类型,取值范围,引用类型解析
与javascript不同,Java是强类型语言,在定义变量前需要声明数据类型.主要分两种数据类型:基本数据类型和引用数据类型. 1.基本数据类型分析: 基本数据类型 数值型 整数型 byte字节 ...
随机推荐
- Analytics.js简介
analytics.js JavaScript代码段是一种可用于衡量用户与您网站的互动情况的全新方式.它与之前的跟踪代码ga.js类似,但为开发者自定义实现方案提供了更大的灵活性. analytics ...
- Flask web开发之路五
Jinjia2模板 紧接着上篇博客,接下去写if条件判断和for循环遍历以及过滤器 if条件判断 主app文件代码: from flask import Flask,render_template a ...
- db2 查询表前几行
不需要那么多不需要那么多数据的时候使用fetch first xxx rows only数据的时候使用fetch first xxx rows only
- <转>记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义
→转载地址← 创建一个控制台程序和一个类库, 在控制台创建一个匿名对象,然后再在类库中访问它,代码如下: namespace ConsoleApplication1 { class Program { ...
- djiango web 在进入admin的时候出现'set' object is not reversible错误
解决方案是在你的urls.py 中 把{ } 改为[] 原因不详 治标不治本,并不能改的东西
- [No0000E0]批量打开当前路径下的文件
for /r %i in ( *) do start %i
- C# RichTextBox的用法
https://www.cnblogs.com/arxive/p/5725570.html
- Underdetermined system Constraint counting Overdetermined system
https://en.wikipedia.org/wiki/Underdetermined_system https://en.wikipedia.org/wiki/Constraint_counti ...
- [about remote controller]--mstsc-teamviewer-vnc,nomachine
https://www.jianshu.com/p/c80db368ed8a https://www.nomachine.com/download Ubuntu安装VNC,VNC却无法随系统启动,遂换 ...
- [dpdk] SDK编译-简单扼要版
0. 前提: 环境是CentOS7,archlinux编译有问题,不知道却什么. 1. 解压: [root@dpdk dpdk]# tar Jxf dpdk-2.2.0.tar.xz 2. 设置环境变 ...