2.数据类型和运算符
科学计数法形式
关于浮点型的说明
java的浮点型默认是double型,如果希望把一个浮点型当成float 处理,需要在这个浮点值后加一个f或F作为后缀. 例如5.12代表的是一个double型常量,占用64位内存空间,而 5.12f是一个float型常量,占用32位的内存空间.
11
2-4-3 基本数据类型-字符型
java支持一次为多个变量赋值的写法,但 这导致程序的可读性降低,不推荐。
2-6-3 比较运算符
>、<、>=、<=、==、!=
用于判断两个变量或常量的大小 运算结果是一个布尔值
System.out.println(8>7.5); System.out.println(5==5.0); System.out.println('a'==97); System.out.println(true==false);
java中具有特殊用途的单词 所有关键字都小写
用于定义数据类型的关键字
class long void interface float enum byte double short char int boolean
用于定义数据类型值的关键字 true false null
用于定义流程控制的关键字 if else switch case default
2-5 数据类型-引用类型
引用类型包括类、接口和数组类型 是对一个对象(实例或数组)的引用 可以理解为一个指针 空引用null只能被转换成引用类型,不能转换成基本类型
2-6 运算符
算术运算符 赋值运算符 位运算符 比较运算符 逻辑运算符 三目运算符 运算符的优先级
new
try 用于包的关键字 package 其他修饰符关键字 native
this
catch import strictfp
super
finally
instanceof
throw throws
用于异常处理的关键字
transient
volatile
assert
两个保留字:const , goto
2-4 数据类型-基本数据类型
整型的四种表现形式
二进制 -由0,1组成。以0b开头 八进制-由0,1,…7组成。以0开头 十进制-由0,1,…9组成。整数默认是十进制的 十六进制-由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
关于整型的说明
如果直接将一个较小的整数(在byte或short类型的表数范围内) 赋给一个byte或short变量,系统会自动把这个整数作为byte或 short类型来处理; 如果使用一个大的整数(超出int的表数范围)时,java不会自动 把这个整数当成long型来处理.如果希望系统氢它当成long型来 处理,需要在这个整数常量后加上l或L作为后缀,推荐使用L.
++、-前置
自增自减
Math类下提供丰富的静态方法,用于完成 各种复杂的数学运算
先将操作数加1,再将操作数放入表达式中运算
先将操作数放入表达式中运算,再将操作数加1
后置
只能用于操作变量,不能直接操作常量
2-6-2 赋值运算符
= +=、-=、*=、/=、%=
int a; int b; int c; int d; a = b = c = d = 9;
while
return
do
for
break
continue
用于定义访问权限修饰符的关键字
private abstract extends
protected final implements
public static synchronized
用于定义类,函数,变量修饰符的关键字 用于定义类与类之间关系的关键字 用于定义建立实例及引用实例,判断实例的关键字
2-4-4 基本数据类型-布尔型
布尔型
boolean -用于表示逻辑上的真或假 只能取值true或false,不能是0或非0 其他基本数据类型的值也不能转换成布尔型 用于进行流f while do for ?:
13
三目运算符
2-4-5 基本数据类型-类型转换
2-6-5 三目运算符
?:
int flag = 0; String picName = (flag==0)?"new.jpg":"old.jpg";
这两种写法是等效的,区别在于: If后面的代码块可以有多条语句, 而三目运算符是不支持多条语句的。
String picName = null; int flag = 0; if(flag==0){ picName = "new.jpg"; }else{ picName = "old.jpg"; }
15
表达式类型的自动提升
一个算术表达式中包含多个基本数据类型 自动提升规则:
Byte型、short型和char型被提升至int型 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样 的类型。
byte a = 12; a = a - 5;
int r = 100/3;
int i = 10; byte b = 5; char c = 'a'; double d = 1.23; double e = d * i + c + b ;
基本数据类型的类型转换
自动类型转换
char int byte short long float double
箭头左边的可自动转换为箭头右边的数值型
强制类型转换
使用小括号() 当试图将表数范围大的类型转换为表数小的类型时,容易丢失数据 (溢出)
int x = 123; byte y = (byte) x; System.out.println(y); int a = 200; byte b = (byte) a; System.out.println(b);
9
2-4-2 基本数据类型-浮点型
浮点型
类型 float double 占用存储空间 4字节 8字节 表数范围 -3.403E38 ~ 3.403E38 -1.798E308 ~1.798E308
浮点数的两种表示形式
十进制数形式
例123.4, 123.0 浮点数必面包含一个小数点,否则会被当成int型 例如5.12e2或5.12E2 注意:只有浮点型的数值才可使用科学计数法表示.例如51200是一 个int型,但512E2则是浮点型.
字符型
直接通过单个字符来指定,例’a’ 通过转义字符来表示特殊字符常量,例’\n’ 直接使用unicode值表示字符常量,例’\uXXXX’
Java中常用的转义字符 \b \n \r \t \” \’ \\ 退格符 换行符 回车符 制表符 双引号 单引号 反斜线 \u0008 \u000a \u000d \u0009 \u0022 \u0027 \u005c
java是强类型语言 基本数据类型
整数类型(byte, short, int, long)
数值型 基本数据类型 浮点类型(float, double) 字符型(char) 布尔型(boolean)
2-4-1 基本数据类型-整型
整型
类型 byte short int long 占用存储空间 1字节 2字节 4字节 8字节 表数范围 -128 ~ 127 -2^15 ~ 2^15-1 -2^31 ~ 2^31-1 -2^63 ~ 2^63-1
2-6-1 算术运算符
加减乘除取余
+、-、*、/、% 如果两个运算数都是整型,则运算结果也是整型,截断小数,且 除数不能为0(引发数学异常); 如果两个运算数都是浮点数,或有一个是浮点数,则运算结果也 是浮点数,且允许除数为0或0.0,得到结果是正无穷大或负无穷 大(Infinity或-Infinity)。
2015/11/28
2-6-6 运算符的结合性和优先级
结合性
Java中大部分运算符都是从左向右结合的 但单目运算符,赋值运算符和三目运算符例外,是从右向左运算 的 优先级
2015/11/28
练习
byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句编译失败?原因?
使用标识符来作为变量、对象的名字
标识符规则
标识符可以由字母,数字,下划线和$组成,其中数字不能开头; 标识符不能是java关键字和保留字,但中以包含关键字和保留字; 标识符不能包含空格; 标识符不能包含@,#等特殊字符; 标识符区分大小写; 标识符长度没有限制;
2-3 关键字
(二)
数据类型和运算符
2-1 注释
使用注释的原因
可读性 代码也是文档
java的注释类型
单行注释// 多行注释/* 文档注释/**
*/ */
可以通过JDK的javadoc工具直接将源代码中的文档注释提取成一份 API文档
2-2 标识符
分隔符
分号 ;-语句分隔 大括号 { }-定义代码块 中括号 [ ]-定义和访问数组 小括号 ()-定义和调用方法;优先级说明;强制类型转换 空格-分隔一条语句的不同部分,可以是空格,制表 符和回车 圆点 .-调用类或对象的方法或属性
c语言的数据类型、运算符和表达式
数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
第2章 c语言基本数据类型、运算符和表达式
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。
二、C语言数据类型和运算符号
意义: 意义:可提高执行效率.
4, 3
基本运算符使用注意事项
算术运算符和算术表达式 注意以下几点: ⑴ 两个整数相除结果为整数,如5/3的结果为1.如果参加 两个整数相除结果为整数,如5/3的结果为1 运算的两个数中有一个数为实数,则结果是double型. 运算的两个数中有一个数为实数,则结果是double型. ⑵ 模运算符%,又称求余运算符,要求%两侧均为整型数据, 模运算符%,又称求余运算符,要求% 如7%4的值为3;而且余数的值符号与被除数一致,如- 7%4的值为3 7%- 的值为-3 7%-4的值为-3. ⑶ 运算符"+ +"是操作数加1,而"--"是操作数减1, 运算符" +"是操作数加1,而"--"是操作数减1 只适用于变量,不能用于常量或表达式.
21/25 21/25
举例:写出下列表达式的值 若有定义:int a=3, b=2, c=1; char ch1='a'; 1) b+c!=a 2) ch1<'b' 3) a%2==0 4) (a>b)>(b<c) 5) a>b>b<1 6) a>b==c 7) f=a>b>c
22/25 22/25
基本运算符使用注意事项
基本算术运算符: + 加 / 取正 (双目运算符 / 单目运算符) - 减 / 取负 (双目运算符 / 单目运算符) * 乘 (双目运算符) / 除 (双目运算符) % 整除取余 (双目运算符) 注意: 1)两整数相除结果仍为整数 如:5/2 2 -5/3 -1 1/2 0 要依实际应用情况加以利用或避免. 2)求余运算要求两运算元素均为整型,余数仍 为整型; 如:int a, b; a=11%3; /*2 a*/ b=5%a; /*1 b*/ 若有: a=11.0%3; 编译时将视为语法错.
第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语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
数据类型,运算符
数据类型,运算符
数据类型可以分为整型、浮点型、字符型等。
整型表示整数,一般包括int和long两种类型;浮点型表示小数,一般包括float和double两种类型;字符型表示字符,通常用char类型表示。
运算符包括算术运算符、赋值运算符、比较运算符等。
算术运算符包括加减乘除和取余数等;赋值运算符用来将一个值赋给变量;比较运算符用来比较两个值的大小关系等。
除此之外,还有逻辑运算符、位运算符、三目运算符等。
逻辑运算符包括与、或、非等;位运算符包括左移、右移、按位与、按位或等;三目运算符用来简化if-else语句。
数据类型、运算符与表达式
6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。
数据类型与运算符
数据类型与运算符
本章要点
目标
理解:常量、变量和表达式。 掌握:Java中的八种原始数据类型。 掌握:运算符和表达式的应用。
重点
掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示 和引用。 掌握:算术运算符、关系运算符和逻辑运算符的应用。 掌握:自增、自减运算符的不同用法。
用4位16进制数表示字符
双引号 单引号 反斜线 用3位8进制数表示字符
数据类型与运算符
2.3 运算符和表达式
运算符是表明作何种运算的符号。 操作数是被运算的数据。 表达式是由操作数和运算符组成的式子。 表达式的运算结果称为表达式的值。 Java提供的运算符,按操作数的数目来分,可有: 一元运算符:需要一个操作数。++i,--i,+i,-i 二元运算符:需要二个操作数。a+b,a-b,a>b 三元运算符:需要三个操作数。表达式1 ?表达式2 : 表达式3
数据类型与运算符
2.2数据类型
每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常 量的数据类型对其分配存储空间。Java为数值、字符值和布尔值数 据提供了几种基本数据类型。Java语言的数据类型划分如图2-1。
字节型byte
整数类型 短整型short 整型int 长整型long 基本数据类型 浮点类型 数据类型 字符类型char 布尔类型boolean 类class 单精度浮点型float 双精度浮点型double
若运算符是前置于变量的,则变量先加1或减1,再参与表达式中的运算。 若运算符是后置于变量的,则变量先参与表达式的运算,再加1或减1。 例如:
二、数据类型及运算
1C 2C 3A 1、下列选项中可以作为C语言中合法整数的是: A 10110B C 0xffa A 复数型 C 双精度型 A 32768 C 037 B 0386 D x2a2 B 逻辑型 D 集合型 B0 D 0xAF
2、以下选项中属于C语言的数据类型是:
3、在下列选项中,不正确的int类型的常数是:
3、变量
概念: 概念:其值可以改变的量 每个变量有一个名字:用标识符表示。 每个变量有一个名字:用标识符表示。 名字 每个变量有一个存储空间(存储单元), ),该单 每个变量有一个存储空间(存储单元),该单 存储空间 元中的状态所表示的数为此时变量的值。 元中的状态所表示的数为此时变量的值。 变量的使用:先定义, 变量的使用:先定义,后使用
实型变量
实型变量的说明形式如下: 实型变量的说明形式如下 float 变量名 ,变量名 ,…… 变量名 ; 变量名1[,变量名2, 变量名n]; double 变量名 ,变量名 ,…… 变量名 ; 变量名1[,变量名2, 变量名n]; float: 占4字节,提供 位有效数字 字节, : 字节 提供7位有效数字 double:占8字节,提供 字节, : 字节 提供15~16位有效数字 位有效数字 例 float a; float a,b,c; a=111111.111; double x,y; double b; b=111111.111; /* a=111111.1*/ /* b=111111.111*/
整型常量
(1) 整型常量就是整数,包括正整数、负整数及0; (2) 整型常量有三种书写方式 十进制整数: 0、 -111、 +15、21 八进制整数: 00、 -0111、+015、021 十六进制整数:0x0、-0x111、0x21 0x0 -0x111 0x21 (3) 整型常量在机内存放一般占2个字节,所表示的 范围-32768~+32767 (4) 为了扩大数值范围,C语言提供“长整型常量”, 长整型常量在机内存放占4个字节。表示方法是在数 的后面加一个L或l字母。(0L、40000L)
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。
第2章数据类型、运算符和表达式
(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536
