第二章数据类型.

合集下载

第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

2.2 标识符、常量与变量

符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }

以下是合法的整型常量:

2.2 标识符、常量与变量

实型常量

实型常量只能用十进制形式表示 表示形式:


小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量

2.2.3 变量


在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量

变量的定义和说明

数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式



掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出

C语言教程课件第二章 数据类型、运算符和表达式

C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算

第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C

第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C

第二章 VFP的数据表达式一、数据类型1.字符型字符型(Character,C型)通常用于储存文本信息,由字母、汉字、空格、数字、符号和标点等字符组成,宽度不能超过254字节。

若超过254字节,则请改用备注型。

例如:“abc”,“计算机”,“123”,“ID18”等。

2.货币型货币型(Currency,Y型)这种类型是专为货币数据设计的数据类型,表示方法是在数字前加一个$符号。

最多只能保留到小数点后4位,超过四位则会自动四舍五入:少于四位则会自动补零。

占8个字节的空间。

例如:money=$980.45678。

3.数值型数值型(Numeric,N型)用于表示数量,由数字0~9、+或-,以及小数点组成。

数值型数据占8个字节,长度为1~20个字节。

VFP中文版采用十进制和十六进制两种格式。

例如:98.66,0xff(前面加0x表示十六进制)。

数值型数据可采用科学计数法,如“3E2”代表“3×102”,“10e-2”代表“10×10-2”。

4.整型整型(Integer,I型)用于存储不含小数部分的数值。

是一种较小的数据类型,整数型占有内存空间4个字节。

5.浮点型浮点型(Float,F型)等价于数值型类型。

VFP出于兼容性的考虑设置了这个数据类型。

6.日期型日期型(Date,D型)用于存储日期数据。

由年、月、日三部分组成,存储格式为“YYYYMMDD”。

表示范围为{^0001/01/01}到{^9999/12/31},即公元0001年1月1日到公元9999年12月31日。

其中“^”符号表示此日期格式严格遵循YMD(year,month,day)的格式,使用日期型数据时应用大括号{}括起来。

日期型数据存储长度为8个字节。

例如:mydate={^2006/10/12}表示日期是2006年10月12日,而不是2006年12月10日。

7.时间日期型时间日期型(Date Time,T型)用于记录日期时间的数据。

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

第二章+数据类型、运算符和表达式
2019/7/20
格式项的一般形式为:
%[附加格式] 格式控制符
方括号中的内容可以缺省。
附加格式控制
含义说明
l(小写字母)
m
数据最小输出宽度(一个具体正整数)
.n(一个具体 对实数,表示输出几位小数;对字 正整数) 符串,表示截取的字符个数
-(负号) 输出的数据域内向左对齐
+(正号) 要求正数和0带正号输出,负数带符 号输出
变量的定义 格式为: 类型 变量列表;
可同时定义多个同类型的变量,之间用逗 号分隔。 变量的初始化 1. 变量定义时:格式为 类型 变量名=常数; 2. 变量定义后:通过赋值语句实现
2019/7/20
变量的作用域:变量能够起作用或者 可以被使用的程序范围。由定义的位 置决定
1. 局部变量:在函数内部定义的变量, 只在其定义的某个函数或复合语句范 围内有效。
3) 例题分析:example25
2019/7/20
4. 寄存器变量:程序运行时存储在CPU寄 存器中的变量,只用于局部变量,要求 是整型和字符型变量。说明符“register”
5. 外部变量:表示该变量可以在程序中的 任何地方使用,包括定义此变量的源文 件之外,作用域为整个工程。只能用于 全局变量。说明符为“extern”。
a string”
2019/7/20
注意:“A”与‘A’完全不同,前者是字 符串,后者是字符,它们在内存中的存 贮空间并不相同。 在字符串中使用双引号必须以“\”” 表示。
实例 example22 符号常量:用标识符命名的常量,可代
替常量 在程序中直接使用。 1. 使用C语言中的一个预编译指令#define
整型常量:可以用十进制、八进制和十 六进制来表示。 a.十进制整数:[ ± ]若干各0~9的数字。 如12, 0 ,-234等

第二章数据资料的类型及其特征

第二章数据资料的类型及其特征

7 6 5 百万头 4 3 2 1 0 奶牛 黄牛 水牛
图1 云南省牛的存栏数
0.25 2.9 奶牛 黄牛 水牛 5.8
图2 云南省牛的存栏数(百万头)
奶牛 水牛 黄牛
图3 云南省的牛存栏数(百万头)
Body weight
135 125 115 105 95 85 75 65 55 45 35 25 15 5 0 5 10 15 20 25 30 35 40 45 50 55 60 日龄(d) Age 第1组 第2组 第5组 第2组 第4组
H=
1
1 n 1 ( x1
+
1 x2
+ ⋯ x1n )
=
1
1 n

1 x
中位数和众数
算数平均数、几何平均数及调和平均数的Excel计算。 Excel1
资料变异程度的度量
• • • • • 极差 离均差平方和 方差 标准差 变异系数
标准差(方差)
标准差的意义: • 标准差或方差是一组资料变异程度的度量值。 • 它通常与算数平均数一起使用,反映平均数的代表性。 • 当平均数相同时,标准差越大,平均数的代表性越差, 反之,代表性越好。
算数平均数的意义、计算及性质
• 意义:算数平均数等于若干变数(观察值)之和除以变数 个数的商。所以,它是这组变数的一个代表值。 • (样本平均数的)计算: 1)直接法 主要用于样本含量n≤30以下、未经分组资料平均数的计 算。 设某一资料包含n个观测值:x1、x2、…、xn,则样本平 均数
n
x1 + x 2 + ⋯ + x n x= = n
变异系数
• 当进行两个或多个资料变异程度的比较时,如果度量单位 当进行两个或多个资料变异程度的比较时, 与平均数相同,可以直接利用标准差来比较。 与平均数相同,可以直接利用标准差来比较。 • 如果单位和(或)平均数不同时,比较其变异程度就不能 如果单位和( 平均数不同时, 采用标准差,而需采用标准差与平均数的比值(相对值) 采用标准差,而需采用标准差与平均数的比值(相对值) 来比较。 来比较。 • 标准差与平均数的比值称为变异系数,记为C·V。变异系数 标准差与平均数的比值称为变异系数, 可以消除单位和( 可以消除单位和(或)平均数不同对两个或多个资料变异 程度比较的影响。 程度比较的影响。 • 变异系数的计算公式为: 变异系数的计算公式为:

C02(数据类型)

C02(数据类型)

第 二 章 数 据 描 述
整型常量的类型 问题: 问题: 根据其值所在范围确定其数据类型 0123 = (( 83 ))10 0123 = 10 在整常量后加字母l或L,认为它是long int 型常量 0x123 = (( 291 ))10 0x123 = 10 例 30000= 为int型 ))10 0Xff = (( 255 10 0Xff 12 与 12L 例

运算转换规则:不同类型数据运算时先自动转换 成同一类型
第 二 章 数 据 描 述
<
>

double
float
说明: 必定的转换
long
运算对象类型不同时转换
unsigned

int
char,short
例 int i; float f; double d; long l;
10+„a‟ +i*f int int d/l

整型变量

占字节数随机器不同而不同,一般占一个机器字 short≤int≤long 可用sizeof(类型标识符)测量

实型变量
float:占4字节,提供7位有效数字 double:占8字节,提供15~16位有效数字
例 float a; 字符型变量
第 二 章 数 据 描 述
<
a=111111.111; /* a=111111.1*/ 字符变量存放字符ASCII码 double b; char与int数据间可进行算术运算 b=111111.111; /* b=111111.111*/ 例 a=„D‟; /* a=68; */ 没有字符串变量,用字符数组存放 x=„A‟+5; /* x=65+5; */ s=„!‟+„G‟ /* s=33+71; */ >

C语言第02章 数据类型、运算符与表达式


回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。

C语言第二章 数据类型习题

第一章 C语言概述【题1.1】一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束。

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束【题1.2】以下叙述正确的是。

A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误【题1.3】以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面【题1.4】C语言规定:在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后【题1.5】一个C语言程序时由。

A)一个主程序和若干个子程序组成B)函数组成C)若干过程组成D)若干子程序组成填空题【题1.6】C源程序的基本单位是【】【题1.7】一个C源程序中至少应包括一个【】【题1.8】在一个C源程序中,注释部分两侧的分界符分别为【】和【】【题1.9】在C语言中,输入操作是由库函数【】完成的,输出操作是由库函数【】完成的。

第二章数据类型、运算符与表达式2.1 选择题【题2.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为。

A) char<int<long int<=float<doubleB) char=int <long int<=float<doubleC) char<int<long int=float=doubleD)char=int=long int<=float<double【 2.3】假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是。

C语言程序设计第2章 数据类型与运算练习题及解答

第2章数据类型和运算符习题及解答一.选择题。

1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。

语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语言的数据类型。

在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。

所以,在本题的选择答案中,不应该包括逻辑型。

3.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。

4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。

5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。

因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

6.下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。

2 C语言 第二章数据类型、表达式


说明
在整型常量尾部加上字母1或 时 在整型常量尾部加上字母 或L时,则 表示长整型常量.比如: 表示长整型常量.比如:18L或18l 或 整型(int)常量的值在 32768~32767之间 常量的值在 整型 之间 长整型(long int)常量的值在 长整型 常量的值在 2147483648 ~ 2147483647之间 之间
三位八进制 001 000 001 二进制 ( (用十进制表示为65) 65)
A' 如 \ 101 –– 表示字符'A' 又: \ x hh
用1到2位16进制数表示的 到 位 进制数表示的 进制数表示的ASCII码对应的字符 码对应的字符
如 \ x 41–– 表示字符'A'
0100 0001 二进制 (用十进制表示为65)
注意: 注意: 实型变量的有效数字的长度视机器而定 例如: 例如: pc机, 单精度一般为7位, 双精度15位 于是: float a; a=123456.789 则实际赋值a←123456.7 单精度表数范围: 单精度表数范围 10–38~1038 双精度表数范围: 双精度表数范围 10–308~10308 实数可以赋给float或double型变量.
对于较大或较小的数,可用指数形式 0.0000126 1260000 1.26E –5 1.26E+6 或1.26E6
' E ', 'e ' 均可, 表示以10为基数.E或e之前必须要 有数字,称为尾数部分或数码部分.规范化的尾数是将 小数点固定在第一位有效数字之后.ddd称为指数,指数 最多可达3位整数.
2.4.2 实型变量
分为单精度型 双精度型 单精度型与双精度型 单精度型 双精度型. 例如: 例如: float x, y, z ; 定义x, y, z为单精度变量. double a, b, c ; 定义a, b, c为双精度变量. 一般地: 单精度占4字节内存单元 字节内存单元; 一般地 单精度占 字节内存单元 双精度占8字节内存单元 双精度占 字节内存单元. 字节内存单元
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 Java 中的数据类型 本章知识要点 标识符 Java 注释 Java 数据类型 2.1 使用规范的标识符为变量命名: 2.1.1标识符命名规则: 在 Java 中,标识符用来为程序中的常量、变量、方法、类、接口和包命名 . Java 中的标识符有以下四种命名规则 :

1. 标识符由字母、数字、下划线 (_或美元符号 ($组成 . 2. 标识符的首字母由字母、下划线 (_或美元符号 ($开头,不能以数字开头 . 3. 标识符的命名不能与关键字、布尔值(true,false 和 null 相同。 4. 标识符区分大小写,没有长度限制,坚持见名知义的原则 . 2.1.2 关键字 :

关键字是 Java 语言保留的,为其定义了固定含义的特殊标识符 . 注意 :关键字全部为小写字母,程序员不能将关键字定义为标识符,否则出现编译错误 . Java 中定义的 48个关键字如下表所示 :

提示 : 见名知义的原则 : 是指在使用标识符命名时,要使用能反映被定义者含义或作用的字符。这样,其他人在阅读代码 时通过名称就可以对程序有所理解。 驼峰命名法就是当使用标识符命名时,如果是由一个或多个单词连接在一起,第一个单词以小写 字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,这样的变量名看上 去就像骆驼峰一样此起彼伏,故取名。如 fileName,username.

2.2 使用注释对代码进行解释说明 注释是程序开发人员和程序阅读者之间交流的重要手段,是对代码的解释和说明。好的注释可以 提高软件的可读性,减少软件的维护成本 .

在 Java 中,提供了 3种类型的注释 : 2.2.1 单行注释 单行注释指的是只能书写一行的注释,是最简单的注释类型,用于对代码进行简单的说明 .

当只有一行内容需要注释的时候,一般使用单行注释。在 Eclipse 中默认使用” Ctrl ” + “ /” , 可以快捷实现单行注释 .

单行注释的语法 : //单行注释 在语法中 单行注释使用“ //” 开头 . “ //”后面的内容都被认为是注释 . 注意:1. 单行注释不会被编译 2.“ //”不能放到被注释代码的前面,否则这行代码会被注释。 2.2.2 多行注释 当需要多行代码注释时使用多行注释符。 在 Eclipse 中,选中一行代码默认使用“ ctrl + shift + /”快捷键可以注释多行代码,多行注 释的语法 .

/** *多行注释 */ 在语法中: 1:多行注释使用” /*”开头,以” */”结尾 . 2:” /*和 */”之间的内容都被认为是注释。 例如下代码 : /* *HelloWorld.java *2017.2.15 *我的第一个 Java 程序 */ public class HelloWorld{ public static void main(String[] args{ } } 提示: 1. 注释简单来说就是一种说明,不被当成语句执行,可以增加代码的可读性 . 2. 单行注释添加方便、随处可以添加,只能作用于一行代码 . 2.2.3 文档注释 如果想为程序生成像 JDK 帮助文档一行的文件,可以在编写代码时是使用文档注释,使用 JDK 提 供的 javadoc 命令,将代码中的文档注释提取出来,自动生成一份 Html 格式的 api 帮助文档,其 风格与 Java 帮助文档完全一样,省去了枯燥、繁琐的手动编写帮助文档的工作。

在 Eclipse 中,输入” /**”,然后按 Enter 键, Eclipse 会自动显示文档注释格式 . 文档注释的语法 : /** *文档注释 */ 在语法中: 1. 文档注释使用“ /**”开头,以” */”结尾。 2. 每个注释包含一些描述性的文本及若干个文档注释标签。 3. 文档注释标签一般以” @”为前缀,常用的文档注释标签如下图所示 :

2.3 Java数据类型 2.3.1 了解 java 中的数据类型 Java 是强类型语言, 在定义变量前需要声明数据类型。 在 Java 中主要分为两种数据类型:基本数 据类型和引用数据类型 .

1. 基本数据类型如下图所示 : 基本数据类型 : 数值型: 整数类型 (byte,short,int,long 浮点类型 (float,double 字符型 :(char 布尔类型 (boolean

注意 : 1.char 类型占 2字节,采用 Unicode 码 . 2.byte 类型占 1字节,是整数类型的一种。 3. 所有的数据类型长度固定,不会因为硬件、软件系统不同而发生变化。 4.String 类型不是基本数据类型,而是引用数据类型,它是 Java 提供的一个类 . 2. 引用数据类型 Java 中的引用数据类型如下图所示 : 引用数据类型:类 (class 接口 (interface 数组 提示 :数组是最简单的一种引用数据类型,类和接口是面向对象语言提供的类型 .

2.3.2 常量 常量是在程序运行中,值不能给改变的量 . 1. 整型常量 整型常量有以下 3种表示方式 : (1十进制方式表示 (2八进制方式表示 (3十六进制方式表示 例如: 789 //十进制 077 //八进制 0X12 //十六进制 . 2. 浮点型常量 (1float(32bit 例如 : 3.4f -45.9F 注意:java 的浮点型默认是 double ,float需要在数字后面加大写的” F ”或小写的” f ” .

(2double(64bit 例如: 3.4 3.4d 3. 布尔常量 例如: true false 4. 字符常量 1 普通字符常量 例如 : „ A ‟ „ 8‟ 2 转移字符常量 例如 : „ \n‟ ://表示换行 „ \t‟ ://表示按 tab 键 „ \b‟ ://表示按退格键 3 特殊字符常量 例如 : „ \\‟ //反斜杠 „ \‟‟ //单引号 „ \”‟ //双引号 4 字符串常量 例如 : “我的中国” “ A ” 要注意字符串和字符的区别,字符用单引号,字符串用双引号。 5null 常量 例如 : null null 常量只有 null 一个值 , 可以把 null 常量赋给人以类型的引用类型变量 . 6 符号常量 final double PI = 3.14; final 取义为 finally, 含义是最终的,代表了不在改变 . 2.3.3 变量 变量是在程序运行中,值可以改变的量 . 变量的语法 : [修饰符 ] 变量类型 变量名 [=初始值 ]; 例如 : char ch =97; int nh=‟ A ‟ ; 2.5 基本数据类型之间的转换形式 为了适应开发的需要, 经常会出现不同的基本数据类型的数据, 相互转换的情况。 这种 转 换有精度不同带来的精度损失问题, 也有浮点数到整数转换带来的小数位丢失问题, 我们 现 在就来讨论一下基本数据类型的转换行为和其转换原理。 注意: boolean 是一种比较特殊的类型,这种类型不允许和其他数据类型进行相互转 换。 2.5.1 自动转换 类型转换示意图: byte short int long float double char 图2-2 在上图2-2 中简单描述了各基本数据类型的自动转换方向。 所谓的自动转换是指从相应 的一种类型值转换另一种类型值时,不需要开发人员进行特殊的设置。例如代码2-3 1 2 3 4 5 6 7 8 9 10 11 12 13 } public class TestConvert { public static void main(String[] args { byte b=10; //定义一个byte 类型的变量b short s=b; //将一个byte 类型的变量b 赋于short 变量s,自动转换 //将 short 类型的s 自动转换赋于int 类型的i 变量 int i=s; long l=i; //将int 类型的i 自动转换赋于long 类型的l 变量 float f=l; //将long 类型的l 自动转换赋于float 类型的f 变量 double d=f; //将float 类型f 自动转换赋于double 类型的d 变量 char c='a'; int ic=c; //将char 类型的c 自动转换赋于int 类型的ic 变量 } 代码2-3 注意:将 int 类型和 long 类型转换成 float 类型时可能出现精度损失,如代 码 2-4

1 2 3 4 5 6 7 public class TestConvert2{ public static void main(String[] args { int i=123456789; //定义一个int 类型变量i float f=I; //自动转换int 类型i 到float 类型变量f System.out.println(i+”:”+f; } } 代码 2-4 代码2-4 的输出结果:123456789 : 1.23456792E8。 2.5.2 强制转换 1自动类型转换 将低级别的类型赋值给高级别类型时,将进行自动类型的转换。 例如: byte b = 7; int i = b; //b 自动转换成 int 类型。 byte 级别比 int 低,所以进行自动类型转换,其转换过程如下所示: 2强制类型转换 将高级别的类型赋值给低级别类型时,必须进行强制类型转换。 eg: int num = 786; byte by = num; //错误 byte by = (bytenum; //正确为强制类型转换 short st = num; //错误

short st =(shortnum; //正确为强制类型转换 byte 和 short 级别比 int 低,所以必须进行强制类型转换. byte by=(byte num;强制类型转换过程如下所示: 注意:强制类型转换时,可能会丢失数据。Byte 强制类型转换为 int 时,int 的低位第一个字 节中的数据 0000 0011 在强制类型转换过程中会丢失。 提示:不经基本数据类型可以进行类型转换,存在继承关系的引用数据类型也可以进行自动或 强制类型转换. 小结 本章内容旨在初步了解 Java 的数据类型, 并分析了基本数据类型和引用数据类型的区 别。 在最后一个小结中提到的概念和知识点, 作者会在后续的章节进行再次详细的讨论和使 用相 应实例进行论证。

相关文档
最新文档