文档介绍:高级语言程序设计
第二章数据类型、运算符与表达式
莆田学院现代教育技术中心
年月制作
莆田学院现代教育技术中心 年月
一、C语言的数据类型
C语言的数据类型 P
基本类型
字符型(char) 字节
整型—短整型(short int ) 字节
基本型(int) 字节(-~)
长整型(long int ) 字节(±亿)
实型—单精度(float) 字节 ~位有效数字
长单精度(long float) 字节 ~位有效数字
双精度(double) 字节 ~位有效数字
长双精度(long double)字节 位有效数字
可知对不同数据类型占用的存储空间:
char<short<=int<long <=float<double
Let’s try…
莆田学院现代教育技术中心 年月
结果显示: char:字节
float:字节
求某一类型数据所占存储字节数,可用运算符:
sizeof(类型关键字)
Example:
main( )
{
printf(“char:%d字节\n”,sizeof(char));
printf(“float:%d字节\n”,sizeof(float));
}
莆田学院现代教育技术中心 年月
注意事项
整型≠整数
int 的范围: - ~+
Example:
#include <>
#include <>
main()
{
int a ;
clrscr( );
printf(“Input :”);
scanf(“%d”,&a);
printf(“a=%d\n”,a);
}
运行结果:
Input:
a=
Input:
a= -
Why?!
Because: 的补码是
的补码是
截去多余部份(超过个字节的左边部分)后
其原码为 (-)
参见教材P“整型数据的溢出”。
莆田学院现代教育技术中心 年月
有趣的结果:
输入(Input:) 输出(a=)
-
-
-
- -
-
-
可用下图表示:
……
-
-
-
有趣的结果
莆田学院现代教育技术中心 年月
注意事项
数据存储形式
字符型按ASCII码存储,其余以补码存储
示意图
字符型(字符'a')
用一个字节存放该字符的ASCII值(ASCII值表见P)
整型(十进制数)
用两个字节存放该数值的补码
实型
尾数(补码) 指数(阶码)
注:第一位均为符号位
……
莆田学院现代教育技术中心 年月
补充: 二进制数的定点和浮点表示
定点表示法——小数点位置是“固定的”
定点数可用于表示整数。整数在机器中用补码表示。
对于 int a=,b=-;
符号位:
—正数 —负数
正数的原码=正数的补码
负数的原码和补码按以下规则相互转换:
符号位不变,数值位各位取反,未位加。
原码
补码
符号位
数值位
a==
b=- =-
真值
莆田学院现代教育技术中心 年月
补充: 二进制数的定点和浮点表示
浮点表示法——小数点位置是“浮动的”。
在计算机中一个浮点数由两部分组成:阶码和尾数,阶码是指数,尾数是纯小数。浮点表示法可用于表示带小数的数。
(.)B=.×+=. × - =. × +
即: N=数符×尾数×阶符×阶码
尾数的位数决定数的精度
阶码的位数决定数的范围
数符尾数阶符阶码