整型数据分为整型常量和整型变量。

知识点一:整型常量

在C语言中,整型常量采用3种形式来进行表示:

1)十进制整数;

2)以0开头的八进制整数,如0123就是一个八进制数,它等于十进制数83;

3)以0x开头的十六进制整数,这种表示形式以后在51单片机中会经常碰到。

知识点二:整型变量

由于在C语言中会为一个整型变量在内存中分配一定长度的存储单元,而存储单元中的位只接收0或1,因此,这个整型变量的数据便以二进制形式进行存放。

这里一个存储单元等于一个字节,一个字节等于8位。

知识点三:整型变量的分类

1)基本整型:用int表示;

2)短整型:用short或short int表示;

3)长整型:用long或long int表示。

以上分类中的表示形式都是带符号的整型,即可以表示正、负整数,但实际应用中常常使用正整数,为了充分利用变量的值范围,可以将变量定义为“无符号”类型。

对于初学者而言可能不是很明白上面这句话的意思,可以采用类比的方法来进行理解。

假设整型变量是一个带有10个小格子的盒子,本意上使用5个格子放蓝色墨水,5个格子放黑色墨水;但是,实际情况是常常需要用超过5个的格子来装黑色墨水,因此,我们干脆就直接用这10个格子用来装黑色墨水。

理解了这一点,我们再看看数据的实际存放的方法。

知识点四:整型数据的存放

在C语言中,数值是以补码的形式表示的,那么,这里又涉及到正整数的补码和负整数的补码。

(a)正整数的补码就是该数的二进制形式,即补码=原码;

如整型数占2个存储单元,求10的补码:

1)10的二进制形式1010

2)10的补码=1010(前面12个0通常省略不写)

(b)负整数的补码:

1)将负整数进行绝对值运算,得到一个正整数;

2)求该正整数的二进制;

3)对2)中的二进制进行取反;

4)取反后最低位加1。

如整型数占2个存储单元,求-10的补码:

1)-10的绝对值=10

2)10的二进制=1010(实际上是000000000000001010)

3)对1010进行取反,即1111111111110101

4)对1111111111110101的最低位加1,即10的补码

=1111111111110110

知识点五:整型数据的范围

C语言为了区分正负数,采用最高位作为符号位的方法,即最高位为0时为正,为1时为负,那么两个存储单元,即2个字节等于16位,这16位中最高位是符号位,剩下的15位用来表示数据,按排列组合可知在表示负整数时15个位可以放置2的15次方个,即表示数字-32768,在表示正整数时因为考虑0的存在,因此结果为2的15次方减1个,即表示数字32767。

因此,作为有符号时所表示的范围为:-32768~32767

作为无符号时,由于最高位也可以用来放置,即扩大两倍,再考虑0的存在,因此它可以表示的范围为:0~65535。

C语言中,使用signed来修饰带符号的整数,使用unsigned来修饰不带符号的整数,而如果不加任何修饰词,则默认为带符号的。

知识点六:整型数据占内存的大小

C语言没有具体规定各类数据所占内存的字节数,只要求long型≥int型,short型≤int型,具体如何实现,由各计算机系统自行决定。

可以采用sizeof()函数来确定自己使用的计算机为数据分配多少字节数,例如下列代码:

#include <stdio.h>

int main()

{

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

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

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

return 0;

}

知识点七:整型变量的定义

C语言严格遵循强制类型定义,即先定义后使用。

知识点八:整型数据的溢出

对于一个有符号类型的数据,由于其所能表示的数据范围已经界定,如果继续对其进行如“加”的操作便超出了界线,C语言称之为数据溢出,虽然数据溢出不会报错,但不会得到预期结果,例如下列代码:

#include <stdio.h>

int main()

{

int i =32767;

printf("%d",i+1);

return 0;

}

结果:-32768

因此,在实际编写代码时,要考虑好数据溢出问题,否则,后续出现问题时需要花很大的精力来查找问题。

请扫描下方二维码,获取更多C语言资料↓↓↓↓

二、C语言的数据类型—整型数据相关推荐

  1. C语言的数据类型--整型数据

    知识点一:整型数据类型 整型数据类型 缺省型 名称 [signed]int int 整型 unsigned int unsigned int 无符号整型 [signed]short[int] shor ...

  2. c语言整型变量程序基本,C语言的数据类型→整型数据

    整型数据 一.整型常量的表示方法: "整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开 ...

  3. c语言整型如何存放,C语言的数据类型→整型数据

    整型数据 一.整型常量的表示方法:"整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开头 ...

  4. c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习

    C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...

  5. Go语言基础-数据类型-整型

    文章目录 前言 整型类型 1. 整数类型的分类 2. 整数类型的取值范围及内存占用 3.整数类型的案例 案例一 int类型 案例二 int8的取值范围测试 4. 整形的注意事项 5. 查看某个变量的数 ...

  6. c语言中整形变量,C语言基本数据类型:整型(int)用法详解

    1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整 ...

  7. go语言基础-数据类型- 整型,浮点型,布尔型

    基本数据类型 整型和浮点型 字符串 布尔类型 所有的语言都包含这三部分,我们之前学过的shell脚本也一样: 1. 整型和浮点型 package mainimport ("fmt" ...

  8. C语言基本数据类型:整型(int)用法详解

    1. 整型int     C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和i ...

  9. C语言中字符串数据转为整型数据并提取整型数据

    方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型. #include<stdio.h> #include<string.h> int main() {cha ...

最新文章

  1. PARAMETERS 指令
  2. Mongodb的权限管理
  3. leetcode004 Median_of_Two_Sorted_Arrays.py
  4. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
  5. openresty开发系列10--openresty的简单介绍及安装
  6. VB100年底测试:McAfee金山遗憾出局 瑞星表现令人意外
  7. django中的缓存以及跨域
  8. SLAM: Inverse Depth Parametrization for Monocular SALM
  9. RUNOOB python练习题2
  10. 定义一个Matrix类,实现矩阵的加法和乘法
  11. 双“11”搞促销?用贪心算法来盘他!
  12. HashMap转JavaBean
  13. 我们团队有个做风水项目的现在月收入也有几万了
  14. 荷兰铁路在采纳敏捷和精益中的做法
  15. 语言模型——深度学习入门动手
  16. 南邮历午计算机复试题,南京邮电大学2011年考研计算机复试流程
  17. arduino 步进电机驱动库_arduino中驱动 步进电机
  18. Rust LLDB 调试入门指北
  19. matlab求多元函数微积分,基于Matlab软件求解多元函数积分
  20. 嵌入式设备web服务器

热门文章

  1. 【乘法器】大数乘法器的设计与优化(32位,16位,8位 树型阵列乘法器Dadda Tree与Wallace Tree)
  2. 通往神秘的道路_通往2021年的道路
  3. Google重磅发布Go语言编码规范
  4. xml文件打开_利用XML的力量来打开Financial Exchange文件
  5. mqtt协议之 activeMq、apollo的使用
  6. ORACLE学习笔记 索引和约束
  7. 两个不同牌子的手机怎么换机,不同牌子的手机便签怎么一键换机
  8. 什么样的内容会更吸引用户?
  9. 报纸排版系统技术总结2
  10. 鸡兔同笼解决一些数学问题