高级语言程序设计(c)3数据类型.pptx
1
第三章数据类型
梁春燕
华电信息管理教研室
2
主要内容
预备知识
C语言的数据类型
常量与变量
不同类型数据间的转换
小结
上机作业2
预备知识
3
计算机中数的表示及进制转换
数码、基与权
数码:表示数的符号
基:数码的个数
权:每一位所具有的值
数制
二进制、八进制、十六进制、十进制
3
12
9
1
2
4
8
10
11
9+7=16=(14)12
各种进制之间的转换
4
方法:按权相加
二进制、八进制、十六进制转换成十进制
各种进制之间的转换
5
十进制转换成二进制、八进制、十六进制
方法:连续除以基,直至商为0,从低到高记录余数。
例把十进制数459转换成十六进制数
459
16
28
16
1
16
0
(459)10=(1CB)16
1CB
余11
余12
余1
各种进制之间的转换
6
二进制转换成八进制:
从右向左,每3位一组(不足3位左补0),转换成八进制
八进制转换成二进制:
用3位二进制数代替每一位八进制数
例(1101001)2=(001,101,001)2=(151)8
例(246)8=(010,100,110)2=2
000~0
001~1
010~2
011~3
100~4
101~5
110~6
111~7
二进制与八进制之间的转换
各种进制之间的转换
7
二进制转换成十六进制:
从右向左,每4位一组(不足4位左补0),转换成十六进制
十六进制转换成二进制:
用4位二进制数代替每一位十六进制数
例2=(0011,0101,0111,1101)2=(357D)16
例(4B9E)16=(0100,1011,1001,1110)22
0000~0
0001~1
0010~2
0011~3
0100~4
0101~5
0110~6
0111~7
1000~8
1001~9
1010~A
1011~B
1100~C
1101~D
1110~E
1111~F
二进制与十六进制之间的转换
字节和位
8
内存以字节为单元组成
每个字节有一个地址
一个字节一般由8个二进制位组成
每个二进位的值是0或1
0
1
2
3
4
5
6
7
8
9
10
……...
7
6
4
3
2
5
1
76543210
数值的表示方法——原码、反码和补码
9
原码:最高位为符号位,其余各位为数值本身的绝对值
反码:
正数:反码与原码相同
负数:符号位为1,其余位对原码取反
补码:
正数:原码、反码、补码相同
负数:最高位为1,其余位为原码取反,再对整个数加1
原码
反码
补码
+700000111-711111000+000000000-011111111数的范围(-127~+127)(-127~+127)(-128~+127)
负数补码转换成十进制数:最高位不动,其余位取反加1
例补码取反加1:-7
(用一字节表示数)
数据类型
11
数据类型总表
C
数
据
类
型
基本类型
构造类型
指针类型
空类型void
定义类型typedef
字符类型char
数组
整型
浮点型
单精度型float
双精度型double
枚举类型enum
结构体struct
共用体union
短整型short
长整型long
整型int
数据类型决定:
1.数据占内存字节数
2.数据取值范围
3.其上可进行的操作
(signed)int
基本数据类型
12
类型
符号
关键字
数的表示范围
所占字节数
(位数)
整型
字符型
实型
有
无
2(16)
-32768~32767
(signed)short
2(16)
-32768~32767
(signed)long
4(32)
-2147483648~2147483647
2(16)
unsignedint
0~65535
4(32)
0~4294967295
unsignedlong
unsignedshort
2(16)
0~65535
有
float
4(32)
-3.4e-38~3.4e38
有
double
8(64)
-1