C语言_ch03_2_数据类型及运算符表达式讲述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上一节我们学到了
各种类型常量、转义字符、ASCII码 5.0 5.0f 'a' "" " "
保存不变量的两种方法:#define const 变量:name/reference to a stored value (usually in memory) 标识符的命名规则
variableName CONST_VARIABLE_NAME
-5的补码
00000000 00000101:5的原码
11111111 11111010:按位取反
11111111 11111011:加1 为什么用补码?5+(-5)=0
2021/3/23
9
-1的补码是全1
我们希望-1 + 1 —> 0。怎么做? 我们知道 11111111 + 00000001 = (1)00000000
2021/3/23
1
内容
3.1 顺序程序设计举例
3.2 数据的表现形式及其运算
3.2.1 常量和变量
3.2.2 数据类型
wk.baidu.com
3.2.3 整型数据
3.2.4 字符型数据
3.2.5 浮点型数据
3.2.6 怎样确定常量的类型
3.2.7 运算符和表达式
3.3 C语句
3.4 数据的输入输出
类型名称:int、long、double 输入输出时的格式化:%d、%ld、%f、%lf 所表达的数的范围:
char < short < int <=long<= float <double 内存中所占据的大小:1个字节到16个字节 内存中的表达形式:二进制数(补码)、编码
2021/3/23
printf("%d %d %d\n", i, i+1, i+2);
printf("%u %u %u\n", j, j+1, j+2);
return 0; }
%u: 以无符号整数形式输出
输出: 2147483647 -2147483648 -2147483647
4294967295 0 1
2021/3/23
一个数加1等于0,那么这个数是-1. 即全1(11111111)是-1的补码
2021/3/23
10
2个字节unsigned int的最小最大值
最大值 01111111 11111111 = 215-1=32767
最小值 10000000 00000000 = -32768? 因为10000000 00000000 + 01111111 11111111 =11111111 11111111=-1
14
八进制与十六进制常数
以数字"0"开始的整型常数是八进制数 010和10大小不一样 八进制并不常用
以"0x"或者"0X"开始的整型常数是十六进制 A~F或a~f用来表示十进制的10~15 0x11, 0x05, 0xFA, 0xFF 十六进制形式比较常用,尤其在进行位一级的控制 的时候
printf("sizeof(long
)=%d\n", sizeof(long));
printf("sizeof(float
)=%d\n", sizeof(float));
printf("sizeof(double
)=%d\n", sizeof(double));
printf("sizeof(long double)=%d\n", sizeof(long double));
用来修饰char、int、short和long,说明他们是无符号
2021/3/的23 整数(正整数和0)
7
整数的内部表达
计算机内部一切都是二进制
以补码形式存储
正整数:本身
负整数:对应正整数 按位取反 +1,-5的补码?
假设一个整数占2个字节,即16位
5的补码
00000000 00000101
2147483647的数会如何呢?
小蛇能吞下大 象吗?
2021/3/23
13
整数溢出
/* toobig.c-exceeds maximum int size on our system */
#include <stdio.h>
int main(void)
{ int i = 2147483647; // int最大值,首位0,其余全1 unsigned int j = 4294967295; //unsigned int最大值
15位 215-1=32767
2021/3/23
11
整型类型的取值范围---取决于字节数
-1 -1 -1
2021/3/23
limits.h
12
超出取值范围会怎样?
VC6中int的范围是-2147483648~2147483647 -231~231-1 如果我们给它一个小于-2147483648或者大于
4
sizeof运算符
给出某个类型或变量在内存中所占据的字节数
printf("sizeof(char
)=%d\n", sizeof(char));
printf("sizeof(short
)=%d\n", sizeof(short));
printf("sizeof(int
)=%d\n", sizeof(int));
2021/3/23
2
3.2.2 数据类型
整数 char、short、int、long、long long
浮点数 float、double、long double
逻辑
bool 指针 自定义类型
蓝色的是C99的类型
2021/3/23
3
不同类型有何不同
内存中对象的数据类型决定了: 内存分配的长度和存储形式 可以给这个对象赋什么值 对象可以做什么操作
long long int,长整数,一般是4个字节长。通常简写为long long double,高精度浮点数,VC6占8个字节。
signed
用来修饰char、int、short和long,说明他们是有符号 的整数(正整数、0和负整数)。一般缺省都是有符号的, 所以这个修饰符通常省略
unsigned
2021/3/23
5
整数类型
char:1字节(8比特) short:2字节 int:取决于编译器(CPU),通常的意义是“1个字” long:取决于编译器(CPU),通常的意义是“1个字
” long long:8字节
2021/3/23
6
数据类型修饰符
short short int,短整数,一般2个字节长。通常简写为 short
相关文档
最新文档