【数据类型】整数类型和浮点型类型

目录

一、整数

二、浮点数

三、整数和浮点数的区别

四、int类型:有符号整型

五、其他整数类型

六、使用多种整数类型

七、long 常量和 long long常量

八、整数溢出

九、打印short、long、long long 和  unsigned类型

        %(h/l/ )(d/o/x/X/u)


数据类型关键字

最初K&R给出的关键字

C90标准添加的关键字

int

基本整数类型

signed

提供基本整数类型的变式

long

提供基本整数类型的变式

short

提供基本整数类型的变式

unsigned

提供基本整数类型的变式

char

指定字母和其它字符

表示较小的整数

float

表示带小数点的数

double

表示带小数点的数

额外笔记:long double

表示带小数点的数

一、整数

1、定义:不含小数点和指数的数

2、存储方式:以二进制数字储存整数

  • 如整数7在计算机中以00000111的形式储存

二、浮点数

1、定义:有小数点的数

2、存储方式:

  • 分成小数部分和指数部分来表示,且分开储存这两部分
  • 计算机在内部使用二进制和2的幂进行储存

三、整数和浮点数的区别

整数

浮点数

没有小数部分

有小数部分

表示的范围比整数大

对于一些算术运算,浮点数损失的精度更多

通常只是实际值的近似值

浮点运算比整数运算慢


四、int类型:有符号整型

1、值:正整数、负整数或零

2、取值范围

  • 一般而言,储存一个int值要占用一个机器字长
  • C语言规定int类型不小于16位
  • ISO C规定:-32768 ~ 32767 (-215 ~ 215-1)

3、声明int变量

  • 单独声明:int 变量名;
  • 多条声明:int 变量名, 变量名, …, 变量名;
  • 作用:为变量创建和标记存储空间,并为其指定初始值

4、变量获得值的方法

  • 赋值
  • 通过函数获得
  • 初始化(initialize)变量:为变量赋一个初始值
    • 数据类型 变量名 = 值;
    • 最好不要把初始化的变量和未初始化的变量放在同一条声明中

5、打印int值

  • 可使用printf()函数
  • 转换说明符 %d:指明了在一行中打印整数的位置
  • 要确保转换说明的数量与待打印值的数量相同

6、显示八进制和十六进制

显示前缀

以十进制显示数字

%d

以八进制显示数字

%o

0:%#o

以十六进制显示数字

%x / %X

0x:%#x

0X:%#X

大写A-F

小写a-f


五、其他整数类型

short int

short

占用的存储空间可能比int类型少

C语言规定至少占16位

常用于较小的数值的场合以节省空间

有符号类型

long int

long

占用的存储空间可能比int类型多

C语言规定至少占32位

适用于较大数值的场合

有符号类型

long long int

long long

占用的存储空间可能比long类型多

C语言规定至少占64位

适用于更大数值的场合

有符号类型

unsigned int

unsigned

只用于非负值的场合

可以表示更大的数

无符号类型

signed

强调使用有符号类型的意图

如short == short int == signed short == signed short int

C90标准:unsigned long int、unsigned long、unsigned short int、unsigned short

C99标准:unsigned long long int、unsigned long long


六、使用多种整数类型

1、原因:

  • C规定short占用的存储空间不能多于int,long占用的存储空间不能少于int
    • 为了适应不同的机器
  • 个人计算机最常见的设置:long long 64位、long 32位、short 16位、int 16位或32位

2、如何选择类型?

  • 考虑unsigned类型,常用于计数
  • 如果一个数超出了int类型的取值范围,且在long类型的取值范围内,使用long类型
  • long占用的空间比int大的系统,使用long类型会减慢运算速度,非必要不使用long
  • long类型占用空间 = int类型占用空间,确实需要32位整数时,使用long类型,以便把程序移植到16位机后仍可以正常使用
  • 若在int设置为32位的系统中要使用16位的值,应使用short类型以节省存储空间
    • 通常,只有当程序使用相对于系统可用内存较大的整型数组时,才需要重点考虑节省空间的问题
    • 某些组件的硬件寄存器为16位

七、long 常量和 long long常量

1、存储空间大小:从小到大

        int < long < unsigned long < long long / unsigned long long

2、八进制和十六进制常量

        int < unsigned int < long < unsigned long  < long long < unsigned long long

3、有时候要用long类型储存一个小数字,在值的末尾加上后缀l / L

  • ll / LL后缀:表示long long类型
  • u / U后缀:表示unsigned long long

八、整数溢出


九、打印short、long、long long 和  unsigned类型

        %(h/l/ )(d/o/x/X/u)

转换说明

显示类型

%u

unsigned int 类型

%hd

以十进制格式打印short类型

%ho

以八进制格式打印short类型

%ld

long 类型

如果int和long大小相同,用%d即可

但被移植到其它系统中可能会无法正常工作

%lo

以八进制格式打印long类型

%lx

%lX

以十六进制格式打印long类型

%lu

unsigned long 类型

%lld

有符号long long类型

%llu

无符号long long 类型

  • C允许使用大写或小写的常量后缀,但是在转换说明符中只能使用小写
  • h修饰符的作用:显示较大整数被截断成short类型值的情况

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值