当前课程知识点:高级语言程序设计 >  顺序结构程序设计 >  2.2 数据类型 >  整型数据

返回《高级语言程序设计》慕课在线视频课程列表

整型数据在线视频

整型数据

下一节:实型数据

返回《高级语言程序设计》慕课在线视频列表

整型数据课程教案、知识点、字幕

大家好

本讲我们介绍C语言的整型数据和字符型数据

C语言为程序员提供了多种整数类型

每种整数类型的长度如表所示

C语言并没有规定int几个字节

只规定了int类型在内存中占的字节数

不多于long类型

不少于short类型

目前大多数系统上int类型在内存中的

都是占用四个字节的内存空间

下面我们来看看整数类型在内存中的存储方式

先来看有符号的正整数

有符号的正整数

在内存中以二进制原码形式存放

例如10他在内存中的存放形式占四个字节

第一位是符号位

注意是以二进制原码的形式存放的

那么int在内存中的

可表示的最大的正整数是231-1

再来看看有符号的负整数

在内存中的存储形式

有符号的负整数

在内存中是以二进制补码的形式存放

我们来看看-10在内存中的存储印象

第一位符号位

1表示负数

在内存中占四个字节

二进制补码是这样得到的

首先写出二进制的-10的原码

按位取反加1后得到-10的补码

这就是-10在内存中的存储形式

再来看看无符号整数

无符号整数

所有的二进制位都用来存放数字

那么无符号整数最大值所有的位数都为1

第一位也是数据为

那么它表示的数的范围为232-1

是有符号整数的两倍

现在我们来看整型常量

整型常量有三种形式

十进制形式

八进制形式

前面带零

16进制形式带前缀0X或者是大写的大X

那么整型常量根据值的大小

默认类型是int型

在常量后面加小l或大L修饰符的话

表示的是long int型

再来看看整型变量

首先定义整型变量

int a,b;

short i,j;

i j为short型变量

m n为log型变量

x y为无符号整型变量

如果既不指定signed

也不指定unsigned则隐含为有符号

定义变量时

注意考虑变量所占字节数和取值范围

下面我们来看一个程序

这个程序里面定义了两个整型变量a b

这个2147483647是整型常量

这条语句将这个整型常量

赋值给a这个变整型变量

那么运行结果怎么样呢

我们可以看到a的值是如数输出来的

2147483647

但是b的值不是等于正的2147483648

而是等于负-2147483648

这是因为b的值发生了溢出

Int类型变量能够存储的最大正整数位为2147483647

现在我们来看字符的存储方式

计算机使用一种数学编号

也就是整数来表示字符

每一个字符都对应一个特定的整数

C语言用的编码是美国信息交换用标准码

简称ASCII码

ASCII码规定了每个字符对应的编码

字符的存储方式与整数相同

C语言就用一个字节来保存一个字符的

比如说字母a的ASCII码值为65

在内存占一个字节

并且以65的二进制形式存储

字符常量分普通字符和转义字符两种

普通字符也就是可打印字符

是用一对单引号括起来的字符

单引号只是字符与其他部分的分隔符

或者说是字符常量的定界符

不是字符常量的一部分

不能用双引号代替单引号

字符常量的值就是该字符的ASCII码值

单引号中的字符不能是单引号或者反斜杠

转义字符

斜杠后面跟着一个字符或者一个代码值

表示的就是一个转义字符

如\n \t \b等

斜杠表示将其后的字符原来的含义进行转换

变成某种有特殊含义的字符

比如说\n代表的是一个换行符

它是一种控制字符

在屏幕上是不能显示的

也无法用一个一般形式的字符表示

转义字符除了可以表示控制字符

还可以表示普通字符

如\101表示的字符是A

下面我们来看看这个程序的运行结果

这一段代码屏幕输出如下所示

那么我们来分析一下这个程序

第一个printf语句是为了给我们

表示出屏幕的位置的

我们来看看第二个printf语句

第二个printf语句里面\t是跳到下一个制表位

那么\t后面的l不是在第二列输出的

而是在第九列输出的

再来看\b

\b是退格键

那么\b前面是个小写的S没有输出

\b后面是e

这是因为\d起到了将光标移到了前一位

\r是回车 但不换行

那么这个大写的\r

将光标移到了本行的第一位

那么本来第一位是个小写的c

现在变成了这个\r后面的大写的C

再来看第三个printf语句

\t还是一个制表位

所以u和l是对齐的

都在屏幕的第九列输出

再来看这个\165

这个165是表示的是八进制数

那么把这个165转换成十进制是为117

117是ASCII码中的u的值

字符u的值

\x6c

6c是十六进制数

将这个十六进制数转换成十进制数为108

大家看是按照6×16+12来转换

108是ASCII码为l的字符

大家通过这个事例

能看到这个普通字符和转义字符的区别

现在我们来看一下字符变量

C语言的字符类型名称为char

C语言的字符变量占一个字节

可以视为一个有符号的整形

下面我们来看一下这个程序

在这个程序里定义了两个字符变量c1和c2

我们将97赋给字符变量c1

将a这个字符与32相减以后赋给c2

那么第一条printf语句输出c1的值

以两种格式输出c1的值

一种是%c的格式

一种是%d的格式

第二条printf语句

输出c2的值也是以%d和%c的格式输出

我们大家来看一下

c1如果以%c的格式输出

它就是小写的字符a

以%d的格式输出

它就是整数97

同样c2也是

如果以字符格式输出

它是大写的A

以%d的格式输出

它是整数65

从这个代码我们可以看出

整数类型和字符类型的数据可以通用

整型变量和字符型变量可以互相赋值

字符型数据可以直接与整型数据进行算术运算

只能将一个字符常量赋给一个字符变量

不能把一个字符串赋给一个字符变量

小结一下

本讲我们讲了整数类型的数据存储方式

整型常量及整型变量的定义及使用

字符类型数据存储方式

字符常量和字符串量的定义和使用

本讲内容讲到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

整型数据笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。