二、C语言的数据类型—整型数据
整型数据分为整型常量和整型变量。
知识点一:整型常量
在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语言的数据类型—整型数据相关推荐
- C语言的数据类型--整型数据
知识点一:整型数据类型 整型数据类型 缺省型 名称 [signed]int int 整型 unsigned int unsigned int 无符号整型 [signed]short[int] shor ...
- c语言整型变量程序基本,C语言的数据类型→整型数据
整型数据 一.整型常量的表示方法: "整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开 ...
- c语言整型如何存放,C语言的数据类型→整型数据
整型数据 一.整型常量的表示方法:"整型常量"即"整常数". 在C语言中,整常数有三种形式表示: 十进制整数: 如:123.-456.4. 八进制整数,以0开头 ...
- c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习
C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...
- Go语言基础-数据类型-整型
文章目录 前言 整型类型 1. 整数类型的分类 2. 整数类型的取值范围及内存占用 3.整数类型的案例 案例一 int类型 案例二 int8的取值范围测试 4. 整形的注意事项 5. 查看某个变量的数 ...
- c语言中整形变量,C语言基本数据类型:整型(int)用法详解
1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整 ...
- go语言基础-数据类型- 整型,浮点型,布尔型
基本数据类型 整型和浮点型 字符串 布尔类型 所有的语言都包含这三部分,我们之前学过的shell脚本也一样: 1. 整型和浮点型 package mainimport ("fmt" ...
- C语言基本数据类型:整型(int)用法详解
1. 整型int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和i ...
- C语言中字符串数据转为整型数据并提取整型数据
方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型. #include<stdio.h> #include<string.h> int main() {cha ...
最新文章
- PARAMETERS 指令
- Mongodb的权限管理
- leetcode004 Median_of_Two_Sorted_Arrays.py
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
- openresty开发系列10--openresty的简单介绍及安装
- VB100年底测试:McAfee金山遗憾出局 瑞星表现令人意外
- django中的缓存以及跨域
- SLAM: Inverse Depth Parametrization for Monocular SALM
- RUNOOB python练习题2
- 定义一个Matrix类,实现矩阵的加法和乘法
- 双“11”搞促销?用贪心算法来盘他!
- HashMap转JavaBean
- 我们团队有个做风水项目的现在月收入也有几万了
- 荷兰铁路在采纳敏捷和精益中的做法
- 语言模型——深度学习入门动手
- 南邮历午计算机复试题,南京邮电大学2011年考研计算机复试流程
- arduino 步进电机驱动库_arduino中驱动 步进电机
- Rust LLDB 调试入门指北
- matlab求多元函数微积分,基于Matlab软件求解多元函数积分
- 嵌入式设备web服务器