02数据类型 运算符 和表达式

更新时间:2023-08-27 23:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

02数据类型 运算符 和表达式

第二章 数据类型、运算符与表达式

02数据类型 运算符 和表达式

data

Program

CPU运算器

内存

外存硬盘 软盘

2000H (2000H)+(2002H) 2001H 2002H

3

3+5=?

2003H2004H

5

8 内存

用一个字节表示整数,范围为-128~127;用两个字节表 示整数,范围为-32768~ 32767。一般用四个字节表示 整数。(举例)

02数据类型 运算符 和表达式

有符号数15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

无符号数

0 1 1 1 1 1 1 1 1 1 1 1 1 1 110 1 1 1 1 1 1 1 1 1 1 1 1 1 10 …… 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01

32767

32767

32766 32766 …… 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 00

0

065535

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1(补码)

1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 ……1 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00

-2 65534 ……-32767 -32768 32769 32768

02数据类型 运算符 和表达式

常量与变量 常量:在程序运行过程中,其值一直保持不变的 量为常量。

常量也区分不同的类型:30,40 为整型,30.0, 40.0为实型,编辑器只是根据其表面形式来判断其 类型。变量:在程序运行过程中,其值可以改变的量为 变量。 变量在程序的执行中能够赋值,发生变化。变量 有一个名字,并在使用之前要说明其类型,一经 说明,就在内存中占据与其类型相应的存储单元。

02数据类型 运算符 和表达式

#include<iostream.h> #define PRICE 30 //常量,在程序中保持不变 void main(void) { int num, total; //定义变量,在内存中开辟区间 num=10; //变量赋值,10为常量 num total

total=num*PRICE;cout<<“total=“<<total; //输出结果

10 PRICE

300

}

其中:num=10 30 total=num*PRICE 是赋值号,不同于数学意义上的等号。

02数据类型 运算符 和表达式

C++中有多种数据类型,均有常量与变量之分,各 占不同的内存空间,正确定义与使用数据是编写 程序的基本前提。

02数据类型 运算符 和表达式

变量名的命名方法:

变量名、数组名、函数名…称为标识符。标识符只能由字母、数字、下划线这三种字符组成,且第 一个字符必须为字母或下划线,长度不大于247个字符, 大小写不通用。(关键字不能作为标识符)。

关键字即是VC++的语法要求中使用的字。如 int if while 等。

正确的标识符:INT, sum , de12, SUM等。变量必须 使用前定义,以分配空间。 举例说明

02数据类型 运算符 和表达式

abc English 2xy x-y if Else b(3) ‘def’ Chine_bb b3y AbsFloat float

一般变量都是用匈牙利命名法命名的。 int nCount; char chChoice;

02数据类型 运算符 和表达式

整型数据整型常量:

常量是根据其表面形式来判定,整型量即是没有小数点的 整数,范围:-231~(231-1) ,有三种形式: 1)十进制(默认方式)2)八进制 以0开头

43 1345 87654043, 056, 011

3)十六进制 以0x开头 0xdf(举例说明)

0x12

0xa3

0x34

02数据类型 运算符 和表达式

#include<iostream.h>

void main(void){ int int10,int8,int16; //定义3个整型变量 int10=10; int8=010; int16=0x10; //默认为十进制 //八进制 //十六进制 输出 int10=10 int8=8 int16=16

cout<<"int10="<<int10<<endl; cout<<"int8="<<in

t8<<endl; cout<<"int16="<<int16<<endl; }

02数据类型 运算符 和表达式

整型变量: 分为有符号型与无符号型。 有符号型: short 在内存中占两个字节,范围为-215~(215-1) int 在内存中占四个字节,范围为-231~(231-1)

long在内存中占四个字节,范围为-2-31~231-1无符号型:最高位不表示符号位

unsigned short 在内存中占两个字节,范围为0~216-1unsigned int 在内存中占四个字节,范围为0~232-1

unsigned long在内存中占四个字节,范围为0~232-1

02数据类型 运算符 和表达式

1)整型常量亦有长短之分,常量中无unsigned型,但一 个非负的整型常量可以赋给unsigned型的变量。2)若一个常量定义为长整型数,则在其后加l或L进行区 分。 如:32l 32L 564L等,内存为其分配四个字节存储。

一个数在内存中为

11111111111111111111111111111111当这个数为有符号数时,是-1;为无符号数时,是232-1

内存中的数是以补码的形式存放的。(举例说明)

02数据类型 运算符 和表达式

#include <iostream.h>

不同类型的整型数据间 { unsigned short a;的赋值归根到底就是一 short int b= -1; 条:按存储单元中的存 储形式直接传送。void main() a=b; cout<<"a="<<a<<endl; unsigned short a;

}结果:65535

a 1111111111111111

b 1111111111111111

02数据类型 运算符 和表达式

实型数据实型数又称浮点数,有两种表示方式: 1)十进制形式: 23.0 2) 指数形式: 23E1 后面必须是整数。 24.5 145e-1 3.56789

356789e1 e前有数字,

实型变量分单精度 float 和双精度 double 两种形式: float:占四个字节,提供7~8位有效数字。 double: 占八个字节,提供15~16位有效数字。 举例说明

02数据类型 运算符 和表达式

#include<iostream.h>

void main(void){ float a, b;

double c, d; a=0.01 b=0.0345678 c=0.0345678 b=3.45678e-2; 005a=0.01; d=9.7654e-5; cout<<"a="<<a<<'\t'<<"b="<<b<<endl; cout<<"c="<<c<<'\t'<<"d="<<d<<endl;

d=9.7654e-

c=3.45678e-2; Press any key to continue

}

02数据类型 运算符 和表达式

实数是既有整数又有小数的数。

实数可以表示成:N=S×RJS 称为尾数,尾数决定有效数字,即数字的精度。

J 表示指数(阶码)。R 是基数,可取2,4,8,16等,对具体机器而言,基 数取好后,就不能再变了。 数有正有负, 所以设置数符; 阶码亦有正负, 所以设置阶符

如果为实数,则用浮点数的形式在内存存储,表示如下:Jt 阶符 J 阶码 Sf 数符 S 尾数

02数据类型 运算符 和表达式

一般用4个字节表示一个浮点数,也有用8个 字节表示的。

字长一定,尾数越多,精度越高;阶码越多, 范围越大。当计算机中出现小于机器所能表示的最小数 时,机器只能当零来处理,当出现超过机器所能 表示的最大数时,出现溢出现象,一旦出现溢出, 就会停止运算。定点数,浮点数均会出现溢出现 象。

02数据类型 运算符 和表达式

字符型数据(char)字符型数据实际上是作为整型数据在内存中存储的。 计算机是以字符编码的形式处理字符的,因此,我们在计算机内

部是以ASCII码的形式表 示所有字符的。所以7位二进制数即可表示出一个字符,我们用一个字节的容量(8位) 存储一个字符。

例如:字符A的ASCII码为0x41或65,在内存中表示为:

0

1

0

0

0

0

0

1

在程序中表示为: char grade ;//定义一个字符型的变量空间(1个字节) grade=‘A’; //必须用‘ ’表示,否则易与标识符混同

‘ ’内括起来的字符表示该字符的ASCII码。

02数据类型 运算符 和表达式

进一步,由于在内存中的形式与整型数据相同,所以,可以直接用其整型值给变量赋值。

char grade; grade=65; 以下的赋值形式均是等同的。 grade='A'; grade=65 ; grade=0x41; grade=0101;

#include<iostream.h> void main(void) { char a,b; a=‘A’; //输入ASCII码 b=65; //输入十进制数 cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; }

输出: a=A b=A

即在内存中的表示均是相同的

0

1

0

0

0

0

0

1

本文来源:https://www.bwwdw.com/article/bqii.html

Top