精华内容
下载资源
问答
  • C语言整型数据类型

    千次阅读 2017-03-19 19:19:52
    1、整型数据的分类整型数据的一般分类如下:(以下说明的在内存中所占的字节数均是在vs2012这个开发工具里面的)基本型:类型说明符为int,在内存中占4个字节。短整型:类型说明符为short int或short。所占字节和...

    整型数据就是整数。

    1、整型数据的分类

    整型数据的一般分类如下:(以下说明的在内存中所占的字节数均是在vs2012这个开发工具里面的)

    基本型:类型说明符为int,在内存中占4个字节。

    短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。

    长整型:类型说明符为long int或long,在内存中占4个字节。

    长长整型:类型说明符为long long int或long long,在内存中占8个字节

    无符号型:类型说明符为unsigned。

    无符号型又可与上述三种类型匹配而构成:

    无符号基本型:类型说明符为unsigned int或unsigned。

    无符号短整型:类型说明符为unsigned short。

    无符号长整型:类型说明符为unsigned long。

    无符号长长整型:类型说明符为unsigned long long int

    在内存中,有符号整数表示的范围是-2的n-1次方到2的n-1次方-1

        无符号的整数表示的范围为0到2的n次方-1

    2、整数数据在内存中的存放形式

    数值是以补码表示的:正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加1。

    由反码变回原码的技巧,遇到第一个1是前面的数全部取反,即为原码

    3、整型数据的表示方法

    上面讲到的整数,都是十进制。在C语言中,常用的还有八进制和十六进制。下面集中讲解一下:
    1) 十进制数
    十进制数没有前缀。其数码为0~9。
    以下是合法的十进制数:237、-568、65535、1627;
    以下是不合法的十进制数:023 (不能有前导0)、23D (含有非十进制数码)。
    在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造成结果不正确。
    2) 八进制数
    八进制数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
    以下是合法的八进制数:015(十进制为13)、0101(十进制为65)、0177777(十进制为65535);
    以下是不合法的八进制数:256(无前缀0)、03A2(包含了非八进制数码)、-0127(出现了负号)。
    3) 十六进制数
    十六进制数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
    以下是合法的十六进制数:0X2A(十进制为42)、0XA0 (十进制为160)、0XFFFF(十进制为65535);
    以下是不合法的十六进制数:5A (无前缀0X)、0X3H (含有非十六进制数码)。
    4) 整数的后缀
    可以用后缀“L”或“l”来表示长整型数。例如:

    十进制长整型数:158L (十进制为158)、358000L (十进制为358000);

    八进制长整型数:012L (十进制为10)、077L (十进制为63)、0200000L(十进制为65536);

    十六进制长整型数:0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。

    几个整型变量的定义:

    int a,b,c; // a,b,c为整型变量

    long x,y; // x,y为长整型变量

    unsigned p,q;  // p,q为无符号整型变量

    展开全文
  • C语言的整型溢出问题 整数溢出 int、long int 、long long int 占用字节疑问 《C和指针》中写过:long与int:标准只规定long不小于int长度,int不小于short长度。 double与int类型存储机制不同,long int...

    溢出和取值范围

    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<climits>存有各个类型的最大值和最小值
    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类型正数最大值
    

    自己推算:

    以int类型为例:
    int为4字节32位,其中首位用0表示正数,用1表示为负数。因此对于
    最大正数可以表示为:0x7fff ffff(7的二进制为0111,f二进制为1111)
    最大负数(-1)可以表示为:0xffff ffff
    最小负数可以表示为:0x8000 0000(8的二进制为1000)

    负数为正数的源码取反码再取补码,过程如下:
    1、-1的原码:10000000 00000000 00000000 00000001
    2、得反码: 11111111 11111111 11111111 11111110
    3、得补码: 11111111 11111111 11111111 11111111

    最小负数没有并没有原码和反码表示,最高位为1,其余位为0。就是最小负数。
    原码, 反码, 补码 详解

    该如何选用类型

    在这里插入图片描述

    展开全文
  • C语言整型数据类型

    2020-11-16 23:14:42
    数据类型本质就是固定内存大小别名,因为每个数据类型编译器都规定了其占用内存空间大小,在此基础上才衍生除了变量大小,因此,变量本质就是一段连续内存空间别名。对变量操作最终都是转换位对内存...

    1.1数据类型的本质

    数据类型的本质就是固定内存大小的别名,因为每个数据类型编译器都规定了其占用内存空间的大小,在此基础上才衍生出了变量的大小,因此,变量的本质就是一段连续内存空间的别名。对变量的操作最终都是转换位对内存的操作。

    1.2整型的分类?

           整型分为字符,短整型,整型,长整型。同时有无符号和有符号之分。

         数据类型划分以及其表示数据范围如下

     

    1. 长整型至少要和整型一样长,而整型至少应该和短整型一样长。
    2. 在实际开发过程中,short int 至少是16bit的,而long int 至少是32bit的
    3. 在单片机开发种,一般无符号的数据类型,其定义方式如下所示。

    typedef unsigned          char u8;

    typedef unsigned short     int u16;

    typedef unsigned           int u32;

      4.在数值的后面添加L或者l,可以使这个数值被解释位long型,在后面添加U或者u,可以把数值指定为unsigned整型值,这在STM32的库中经常能看到该种表达方式。

    展开全文
  • c语言整型与浮点型数据存取的范围

    千次阅读 2019-04-12 23:17:52
    c语言整型与浮点型数据存取的范围 整型数据: 1.long int 的由来 在win32及现在现在系统中,长度为4;在历史上,或者其他某些系统中,int长度为2,是short int。 所以: short<=int<=long 测试类型数据的字节...

    c语言整型与浮点型数据存取的范围

    整型数据:

    1.long int 的由来
    在win32及现在现在系统中,长度为4;在历史上,或者其他某些系统中,int长度为2,是short int。
    所以: short<=int<=long

    测试类型数据的字节数函数:sizeof(类型名称)

    printf("%d",sizeof(int));
    

    这里列举在win64下的类型字节数及取值范围

    类型名称 字节数 取值范围
    short (short int) 2 (-2 ^15)~ (2^15-1)-32768~+32767
    unsigned short 2 0~65535
    int 4 (-2 ^31)~ (2^31-1)-2147483648~ +2147483647
    unsigned int 4 0~4294967295
    long (long int) 4 (-2 ^31)~ (2^31-1) -2147483648~+2141483647
    unsigned long 4 0~4294967295
    long long (long long long int) 8 (-2 ^63)~ (2^63-1)-9223372036854775808~+9223372036854775807
    unsigned long long 8 0~18446744073709551615

    浮点型数据:

    取值范围(看指数部分):
    float的指数部分有 8bit (2^8),由于是有符号型,所以得到对应的指数范围-128~128。
    取值范围为:
    (-2 ^128)~ (2^128),约等于-3.4E38 ~ +3.4E38 ;
    double的指数部分有 11bit(2^11) , 对应的指数范围-1024~1024。
    取值范围为:
    (-2 ^1024)~ (2^1024),约 等于-1.797E308 ~ +1.797E308;

    精度( 有效数字)(主要看尾数位):
    float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位;
    double的尾数位是52bit,对应15~16位十进制数,有效数字位15位或16位。

    类型名称 指数位 尾数位 取值范围 有效数字
    float 8 23 (-2 ^128)~ (2^128) 约等于-3.4E38 ~ +3.4E38 7 或 8位
    double 11 52 (-2 ^1024)~ (2^1024) 约等于-1.797E308 ~ +1.797E308 15 或 16位

    double的存取的错误认知
    double类型可以存307位(实际是308,但存的最大的最高位为1,所以基本默认这里就讲307),
    但当用.f 输出double时, 它的精度在前16位,他只能保证前16位的精度,后面的就无法保证,因为一旦超过精度范围,就不能精确的描述该数据,不同的处理器对不能精确描述的部分的处理机制可能是不同的,这也就导致了在不同的平台上为什么一套代码的运行结果会不一致

    注意:
    printf()用%f输出double型,而scanf却用%lf
    严格地讲,%lf在printf下是未定义的,但是很多系统可能会接受它。
    要确保可移植性,就要坚持使用%f

    展开全文
  • C语言整型数据(整数)

    千次阅读 2015-01-13 18:30:41
    整型数据的分类 整型数据的一般分类如下: 基本型:类型说明符为int,在内存中占2个字节。 短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。 长整型:类型说明符为long int或long,在...
  • 嗨喽C语言!整型常量

    2019-02-03 21:43:31
    1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。...对超出基本整型值域整型常量,可使用长整型常量表示,其取值范围可达-2...
  • C语言中常用数据类型有char(字符型),short(短整型数据类型),int(整形数据类型),long(整形数据类型),double(双精度浮点型),float(浮点型)。  char在内存中是以一个字节8位储存,在内存中只有0或1,它...
  • C语言基础 整型、字符型和浮点型

    千次阅读 2011-01-05 21:29:00
    整型数据类型表 序号类型名称说明字节数取值范围1signed char有符号单字节整数类型1-128~+1272short int短整型2-32768~+327673int整型4-2147438648~+21474386474long int长整型4-2147438648~+21474386475long long...
  • C语言中,共有四种数据类型,其它类型都是根据四种基本类型派生而来,这四种类型分别是整型、浮点型、指针及聚合类型(如数组和结构等),下面为整型及浮点型长度: 整型 整型包括字符、短整型、整型和长整型,...
  • C语言数据类型可容纳数值的范围c语言中,仅由4中基本数据类型----整形、浮点型、指针和聚合类型(如数组和结构等)。所有其他的类型都是从这4种基本类型的某种组合派生而来。首先让我们来介绍整形和浮点型。 ...
  • C语言的基本数据类型

    2019-03-07 16:57:42
    目录 一、整型 二进制数、八进制数和十六进制数 ...int (整型)是基本整数类型,short (短整型)和 long (长整型)是在 int 基础上进行扩展,short 可以节省内存,long 可以容纳更大值...
  • C语言 基本数据类型 共9种

    万次阅读 多人点赞 2018-10-03 17:55:26
    同短整型(或长整型) 短整型 short 2 -32768~32767 长整型 long 4 -231次方~231次方-1 无符号整型 unsigned [int] 2(或4) 同无符号短整型(长整型) 无符号短整型...
  • (字节)范围备注char字符型1-128 ~ 127-27 ~ (27 -1)unsigned char无符字符型10 ~ 2550 ~ (28 -1)short int短整型2-32768 ~ 327672-15 ~ (215 - 1)unsigned short int无符短整型20 ~ 655350 ~ (216 - ...
  • C语言数据类型

    2021-04-14 17:30:33
    C语言数据类型整型数据整型常量整型变量实型数据实型常量实型...长整型常量:带有后缀“L”,长整型变量的范围为-2147483648~+2147483648 整型变量 ** 整型变量的分类** 类型 符号 占用字节 基本型 int 2字节
  • long 长整型 long long 更长整型 float 单精度浮点数 double 双精度浮点数 类型意义: 1.开辟了内存空间大小(大小决定了范围) 2.决定了访问内存空间方式 注:C语言中没有字符串类型 整型类型 char ...
  • 整型数据分类及其取值范围

    千次阅读 2019-08-11 17:47:04
    C语言中最基本整型类型 1):基本整型 int型:编译系统分配给int型数据2个字节或4个字节,在存储单元方式是用整数码补方式存放。若字节数为2,则取值范围 -32768~...3):长整型 long int:存放字节数为4 取值范...
  • 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量取值区间和精度进行说明。...
  • C 语言的数据基本类型分为字符型、整型、长整型以及浮点型 因为CPU差异,各系统中的数据类型所占字节数(bytes)不同,二进制位数(bit)也不同。那么怎样才能知道自己系统的数据类型字节数,位数呢? 授之以...
  • C语言的数据类型

    2020-08-09 19:58:28
    long //长整型 long long //更长整型 float //单精度浮点数 double //双精度浮点数 为什么整型要分这么多种? 因为一些值取值范围有限,所以用不同类型去创建不同类型变量,提高了空间利用率。 计算机中...
  • 目录: 【数据类型图】 【基本数据类型】 · 整型 · 实型 · 字符型 ...1.数据类型图 ...2.基本数据类型 ... 长整型(long)。 · 实型 用于表示实数(小数)根据范围和精度不同分为两种:单精...
  • 1.格式控制字符d 以十进制输出带符号整数(证书不输出符号)o以八进制形式输出无符号整数x以十六进制形式输出无符号整数u...长度修正选项l标识按长整型或双精度型输出,h按短整型输出。3.域宽可选项m.n %5.2f说明输出...
  • C语言之基本数据类型

    2015-11-28 18:26:12
    在学习C语言的时候,我们可能首先面对的就是C语言中...char:字符型类型数据,属于整型数据的一种。(K&R时期引入) int:整型数据,表示范围通常为编译器指定的内存字节。(K&R时期引入) float:单精度浮点型数据

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 305
精华内容 122
关键字:

c语言长整型数据的范围

c语言 订阅