第03讲 数据类型转换和运算符
day02 【数据类型转换、运算符、方法入门】
进行编译 和 运行 没有问题 ,第8行输出的数据并非 1而是1.0。
运行的过程中,int 类型的数据自动转化为double 类型的数据了。
也就是类型的自动转化(隐式转换)2)转换规则范围小的类型向范围大的类型转换,但是注意byte 、short 、char 运算过程中直接转换为int 。
练习:代码实践证明byte 、short 、char 运算时直接提升为int 。
1.2 强制转换我们在上面已经知道了,当int 类型的数据赋值给double 类型的数据是完全没有问题的。
但是现在我们反着干,我们要把double 类型的数据赋值给int 类型的变量,会发生什么事情呢?做个试验瞧瞧报错!!编译失败了!!System .out .println (1);//默认是一个整型int System .out .println (1.0);//打印的是double 类型int i1=1; // 左边变量的类型和右边数值的类型是没有问题的。
double d1=1.0;// 左边变量的类型和右边数值的类型是没有问题的。
//把一个int 类型的数据赋值给double 类型,会有问题么?double d2= 1;System .out .println (d2);123456789byte 、short 、char < int < long < float < double1byte b1=1;byte b2=1;byte b3=b1+b2; //会报错么?会的话要怎么写?System .out .println (b3);short s1=1;short s2=1;short s3=s1+s2;//会报错么?会的话要怎么写?System .out .println (s3);char c1=1;char c2=1;char c3=c1+c2;//会报错么?会的话要怎么写?System .out .println (c3);1234567891011121314int i1=2.0;System .out .printl (i1);12道理很好理解,int 数据类型的取值范围小 其类型 容纳不下double 类型数据;一定要这么干!!!!怎么办呢?!!只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。
03数据类型、运算符与表达式
x=3.600000,i=3
自增、自减运算符
+ + 自增1 – – 自减1 ❖ ++i(--i)在使用i之前,先使i的值加(减)1 ❖ i++(i--)在使用i之后,使i的值加(减)1
举例
❖ 如: int i = 3; ❖ 若: j= ++i; ❖ 若: j=i++;
则: j=4,i=4(i=i+1;j=i) 则: j=3,i=4(j=i;i=i+1)
\ddd • 表示ASCII码字符 三位八进制
如 \ 101 –– 表示字母A \ x hh 十六进制ASCII 字符 \ x 41–– 表示字母A
举例5
❖ #include <stdio.h> ❖ void main() ❖ { printf(“ ab c\t de\rf\tg\n”); ❖ printf(“h\ti\b\bj k”); ❖}
– 指数形式:对于较大或较小的数,可用指数形 式
– 如:123e3或123E3都表示123×103 ,‘ E ’, ‘e ’ 均可.
• E前必须有数字,后面的指数为整数 • e9,3.5e2.1,e,.e3:非法 • 规范化的指数表示方法
(2)浮点型变量
❖ 浮点型数据在内存中的存放形式:指数
❖ ?整型数据在内存中的存放形式?
❖ 如:10+'a'+1.5–8765.1234 'b‘
❖
——允许的。
❖ 但有一个规则:先转换成同一类型,再计算。
转换规则
转换规则: double float
高
long
unsigned
第03讲 Python基本数据类型、运算符及表达式
(2)多变量并行赋值 变量1,变量2,…,变量n=表达式1,表达式2, …,表达式n 变量个数要与表达式的个数一致,其过程为:首先计算表达式右边n
✓ 从左到右索引默认0开始的,最大范围是字符串长度少1 ✓ 从右到左索引默认-1开始的,最大范围是字符串开头
字符串操作示例: >>>
-----------------------------------------------------
Python列表
列表可以完成大多数集合类的数据结构实现。它支持字符,数字, 字符串甚至可以包含列表(即嵌套)。
str(x) 将x转换为字符串
chr(x) 将一个整数转换为一个字符,整数为字符的ASCII编码
ord(x) 将一个字符转换为它的ASCII编码的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
eval(x) 将字符串str当做有效表达式求值,并返回计算结果
算术运算符
运算符 +
-
* / // % **
含义 加法
减法
乘法 除法 取整除 取模 幂运算
优先级 这些运算符的优先级相 同,但比下面的运算符 优先级低
这些运算符的优先级相 同,但比上面的运算符 优先级高
结合性 左结合
Python中除法有两种:/和//,在Python3.x分别表示除法和整除运算。 >>> 3/5
>>> a = 5 >>> b = 8 >>> a = b 执行a=5和b=8之后a指向的是5,b指向的是8,当执行a = b的时候,b 把自己指向的地址(也就是8的内存地址)赋给了a,那么最后的结果就 是a和b同时指向了8。 3. 多变量赋值 (1)链式赋值
2016-03-数据类型与运算规则1
变量的类型
基本类型
整型 字符型
int char 单精度实型 float 双精度实型 double
实型(浮点型) 数组类型
数据类型 构造类型
结构类型 联合类型 枚举类型
struct union enum
指针类型
空类型void
变量的定义
变量有不同类型。在C语言中,其定义形式如下:
例如: int a, b, c; char cc; double x, y;
unsigned
所有修饰词都用,可以有9种整型类型
int--------------------(1) short [int]---------(2) long [int]---------------------(3) signed [int]----------------(1) signed short [int]--------(2) signed long [int]---------------(3) unsigned [int] unsigned short [int] unsigned long [int]
数据类型与运算
本章主要内容
数据与数据类型 C语言的基本数据类型及其表示 算术运算与赋值运算 关系运算与逻辑运算 位运算 其它运算 混合运算及数据类型转换
计算机,首先是计算
3 f ( x) 3.6a sin x 5
这些是常量 常数 变量 运算符 表达式 函数
函数:X是变量
这是运算符 这是字符常量
64位计算机呢?
整型常数
如果在程序里面想处理不需要改变的整数,我们一般用整 数常量。 整型数据包括整型常量和整型变量, 整型数据以二进制 补码形式存储 整型常量的类型 根据值大小默认类型 在常量后面加l或L,表示long int型,例如:123L,0L, 432l 都是long int型常量
C语言中的数据类型转换方法
C语言中的数据类型转换方法在C语言中,数据类型转换是一项常见的操作,可以帮助我们在程序中处理不同类型的数据。
在C语言中,数据类型转换主要分为隐式转换和显式转换两种方法。
首先我们来介绍隐式转换。
隐式转换是指在表达式中不需要明确指定类型转换,编译器会自动根据运算符的类型来进行转换。
例如,当一个整数类型的值参与带有浮点数运算符的表达式时,整数会被自动转换为浮点数,以保证运算的正确性。
这种转换是由编译器自动完成的,程序员不需要额外的操作。
除了隐式转换外,C语言还支持显式转换,也称为强制类型转换。
显式转换需要程序员手动指定转换的类型,使用强制类型转换运算符进行操作。
强制类型转换的语法格式为:(type) expression。
其中type为要转换的目标类型,expression为需要转换的表达式。
通过显式转换,我们可以将一个数据类型转换为另一种数据类型,以满足程序的需求。
在进行数据类型转换时,需要注意一些细节问题。
首先,对于数值类型的转换,如果转换后的数据类型无法容纳原始数据类型的值,这种转换可能会导致数据丢失或溢出的问题。
另外,对于指针类型的转换,需要特别小心,因为指针类型转换可能会导致数据访问错误或未定义行为。
在进行指针类型的转换时,建议使用专门的指针类型转换操作符,如(void *)。
总的来说,数据类型转换是C语言中常见的操作,可以用于将不同数据类型的值在程序中进行有效处理。
在进行数据类型转换时,需要注意选择合适的转换方法,并且确保转换后的数据类型能够正确表示原始数据类型的值,以避免出现错误或异常情况。
通过合理使用数据类型转换,我们可以提高程序的可读性和性能,更好地实现所需的功能。
第03讲 计算机数制及数制转化
(A)1 (B)2 (C) 4 10. ( BD
(A)五笔字形输入法 (B)键盘输入法 (C)拼音输入法(D)非键盘输入法 拼音输入法(D) (A)五笔字形输入法 (B)键盘输入法 (C)拼音输入法(D)非键盘输入法 11.对于一种文字处理系统,汉字输入码可以有多种多样,而内码______。 11.对于一种文字处理系统,汉字输入码可以有多种多样,而内码______。 对于一种文字处理系统 ______ (A)只能有一种统一的编码 (A)只能有一种统一的编码 (B)与汉字输入码一样多 (B)与汉字输入码一样多 (C)有一种是主要的, (C)有一种是主要的,其它可有可无 有一种是主要的 (D)最少也有两种 (D)最少也有两种
二进制转换成八(十六)进制 二进制转换成八(十六)进制的规律是:从小 从小 数点开始,分别向左向右把每三位(或四位) 数点开始,分别向左向右把每三位(或四位) 二进制数分为一组。若最左和最右一组不足三 二进制数分为一组。 位(或四位),则用0补齐。然后每组用一个 或四位),则用0补齐。 ),则用 或十六)进制数代替。 八(或十六)进制数代替
所以,(0.625) 0.101) 所以,(0.625)10=(0.a-1 a-2 a-3)=(0.101)2 ,(0.625
B).十六进制与十进制的相互转换 十六:先转为二进制数, 十 十六:先转为二进制数,再转化为十六 进制 十六 十:1AH=1x161+10x160=26D
C). 二进制同八进制之间的转换和二进制同十六 进制之间的转换: 进制之间的转换:
(A)原码 (B)补码(C)反码(D)ASCII码 补码(C)反码(D)ASCII (A)原码 (B)补码(C)反码(D)ASCII码 8. ( C ______个字节。 ______个字节。 个字节 (A)256 9. ( B
第三讲运算符表达式
2. 算术运算及表达式
算术运算符:(+ - * / % ++ --) 关系运算符:(< <= == > >= !=) 逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* &) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -)
输出结果: i=6,j=7
1. 数据类型之间的转换
在使用强制转换时应注意的问题: 类型说明符和表达式都必须加括号(单个变 量可以不加括号) 无论是强制转换或是自动转换,都只是为 了本次运算的需要而对变量的数据长度进 行的临时性转换,而不改变数据说明时对 该变量定义的类型,即强制转换得到所需 类型的中间变量,原变量类型不变 从较高类型向较低类型转换时可能发生精 度损失
1. 数据类型之间的转换
转换规则: 若参与运算量的类型不同,则先转换成同 一类型,然后进行运算 转换按数据长度增加的方向进行,以保证 精度不降低 所有的浮点运算都是以双精度进行的,即 使仅含float单精度量运算的表达式,也要 先转换成double型,再作运算
1. 数据类型之间的转换
char型和short型参与运算时,必须先转换 成int型 在赋值运算中,赋值号两边量的数据类型 不同时,赋值号右边量的类型将转换为左 边量的类型
个位上的数字为:c=x%10
输入一个三位数x 计算百位上的数字a=x/100 计算十位上的数字b=x/10%10 计算个位上的数字c=x%10 输出各位上的数字
第3章数据类型运算符-PPT精品
如果不指定为unsigned,则默认为signed (此时signed可以不写) 符号类型符和其他三个基本类型组合共可得出6种整型变量:
2019/11/11
2019/11/11
c语言
13
3.整型变量的分类:P43表3-1
变量类型名 整型
无符号整型 短整型
无符号短整型 长整型
无符号长整型
2019/11/11
变量类型 int unsigned int short
所占字节数/ 比特(位)数
数的范围
4/32
-2147483648~2147483647 -231~(231-1)
2019/11/11
c语言
26
一种特殊形式的字符常量,“转义字符” 转义字符:反斜线后面跟一个字符或一个代码值表示 例如:'\n' 代表换行符
2019/11/11
c语言
27
常见的转义字符
字符形式 \n \t \b \\ \’ \”
\ddd \xhh
2019/11/11
含义 换行,将当前位置移到下一行开头 水平制表(跳到下一个tab位置)
4/32
0 ~ 4294967295 0~(232-1)
2/16
-32768~32767 -215~(215-1)
unsigned short 2/16
long
4/32
0~65535 0~216-1
-2147483648~2147483647
-231~(231-1)
unsigned long
Python中的数据类型转换和操作符
Python中的数据类型转换和操作符Python是一个动态类型的编程语言,这意味着在代码执行时变量的类型可以随时改变。
Python支持多种不同类型的数据,如整数,浮点数,字符串,列表,元组,集合和字典等。
在编写Python程序时,经常需要进行数据类型转换和操作符的应用。
数据类型转换是指将一个数据类型转换为另一个数据类型,而操作符则是表示不同数据类型之间的关系和操作的符号。
1.数据类型转换Python提供了不同的函数来实现数据类型间的转换。
下面介绍几个常用的数据类型转换函数。
1.1 str()函数str()函数用于将其他数据类型转换为字符串。
例如:a = 123b = str(a)print(b)输出结果为:'123'1.2 int()函数int()函数用于将其他数据类型转换为整数类型。
例如:a = '123'b = int(a)print(b)输出结果为:123需要注意的是,如果将不能转换为整数类型的字符串传给int()函数,将会抛出ValueError错误。
例如:a = 'abc'b = int(a)print(b)运行代码将抛出ValueError错误。
可以通过try...except...语句来处理ValueError错误:a = 'abc'try:b = int(a)print(b)except ValueError:print("无法将字符串转换为整数")输出结果为:“无法将字符串转换为整数”1.3 float()函数float()函数用于将其他数据类型转换为浮点数类型。
例如:a = '123.456'b = float(a)print(b)输出结果为:123.456需要注意的是,如果将不能转换为浮点数类型的字符串传给float()函数,将会抛出ValueError错误。
例如:a = 'abc'b = float(a)print(b)运行代码将抛出ValueError错误。
黑马程序员-数据类型的转换,算术运算符,逻辑运算符
⿊马程序员-数据类型的转换,算术运算符,逻辑运算符---------------------- +Android+IO开发S、.Net培训、期待与您交流! ----------------------1.数据类型的转换1).参与运算(算术运算和赋值运算)的操作数和结果类型必须⼀致.当不⼀致时,满⾜下⾯条件时,系统⾃动完成类型转换(隐式转换)两种类型兼容例如:int 和 double 兼容(都是数字类型),⽬标类型⼤于源类型例如:double > int如果⼀个操作数为double型,则整个表达式可提升为double型,double转int显⽰转换,丢精度.int类型转化double类型可以int类型变量*1.0保留两位⼩数使⽤占位符的⽅式输出在占位符的后⾯加上:0.00..你想要的位数2),对于不兼容的类型间的转换我们使⽤ Convert这个转换⼯⼚,使⽤Convert进⾏转换必须要满⾜⼀个条件:⾯⼉上必须过得去。
不管咱们是向控制台输出的,还是从控制台接受的都是字符串类型。
Convert不再仅是内存级别的转换,⽽是考虑数据意义的转换。
Convert是⼀个加⼯、改造的过程.通过 Convert.ToInt32(能转换成int类型的数据)来把其他类型数据转换成int类型⼀切类型都可以转换为string类型.2.算术运算符 ++ -- + - * / %1).++⼜分为前加加和后加加 -- 分为前减减和后减减2).不管是前加加还是后加加,结果就是变量的值都加了1,不管是前减减还是后减减,结果就是变量的值都减了1前加加和后加加的区别:相同点:不管是前加加还是后加加,结果就是变量的值都加了1.不同点:如果是前加加,那么⾸先给这个变量的值⾃⾝加⼀,然后再参与运算。
如果是后加加,那么⾸先拿原值参与运算,运算完成后,⾃⾝加⼀。
3).在⼀个表达式中,如果既有⼀元运算符也有⼆元运算符⾸先计算⼀元运算符,然后再算⼆元运算符。
数据类型转换、运算符
数据类型转换、运算符【数据类型转换、运算符】内容数据类型转换算数运算符⽐较运算符逻辑运算符三元运算符第⼀章数据类型转换Java程序中要求参与的计算的数据,必须要保证数据类型的⼀致性,如果数据类型不⼀致将发⽣类型的转换。
1.1 ⾃动转换⼀个int 类型变量和⼀个 byte 类型变量进⾏加法运算,结果会是什么数据类型?int i = 1;byte b = 2;运算结果,变量的类型将是 int 类型,这就是出现了数据类型的⾃动类型转换现象。
⾃动转换:将取值范围⼩的类型⾃动提升为取值范围⼤的类型。
1public static void main(String[] args) {2int i = 1;3byte b = 2;4// byte x = b + i; // 报错5//int类型和byte类型运算,结果是int类型6int j = b + i;7 System.out.println(j);8 }转换规则范围⼩的类型向范围⼤的类型提升, byte 、short、char 运算时直接提升为 int 。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double1.2 强制转换强制类型转换:将取值范围⼤的类型强制转换成取值范围⼩的类型。
⽐较⽽⾔,⾃动转换是Java⾃动执⾏的,⽽强制转换需要我们⾃⼰⼿动执⾏。
转换格式:数据类型变量名 = (数据类型)被转数据值;当⼀个 short 类型与 1 相加,我们知道会类型提升,但是还想给结果赋值给short类型变量,就需要强制转换。
1public static void main(String[] args) {2//short类型变量,内存中2个字节3short s = 1;4/*5出现编译失败6 s和1做运算的时候,1是int类型,s会被提升为int类型7 s+1后的结果是int类型,将结果在赋值会short类型时发⽣错误8 short内存2个字节,int类型4个字节9必须将int强制转成short才能完成赋值10*/11 s = s + 1;//编译失败12 s = (short)(s+1);//编译成功13 }强烈注意浮点转成整数,直接取消⼩数点,可能造成数据损失精度。
数据类型转换、运算符
数据类型转换、运算符1、进制的分类(1)⼗进制:数字组成:0-9 进位规则:逢⼗进⼀(2)⼆进制:数字组成:0-1 进位规则:逢⼆进⼀⼗进制的256,⼆进制:100000000,为了缩短⼆进制的表⽰,⼜要贴近⼆进制,在程序中引⼊⼋进制和⼗六进制(3)⼋进制:很少使⽤数字组成:0-7 进位规则:逢⼋进⼀与⼆进制换算规则:每三位⼆进制是⼀位⼋进制值(4)⼗六进制数字组成:0-9,a-f 进位规则:逢⼗六进⼀与⼆进制换算规则:每四位⼆进制是⼀位⼗六进制值2、进制的换算⼗进制⼆进制⼋进制⼗六进制000011112102231133410044510155611066711177810001089100111910101012a或A11101113b或B12110014c或C13110115d或D14111016e或E15111117f或F16100002010 ⼗进制数据转成⼆进制数据:使⽤除以2倒取余数的⽅式 ⼆进制数据转成⼗进制数据:从右边开始依次是2的0次,2的1次,2的2次。
⼆进制数据转⼋进制数据:从右边开始,三位⼀组 ⼆进制数据转⼗六进制数据:从右边开始,四位⼀组3、在代码中如何表⽰四种进制的值请分别⽤四种类型的进制来表⽰10,并输出它的结果:(了解)(1)⼗进制:正常表⽰System.out.println(10);(2)⼆进制:0b或0B开头System.out.println(0B10);(3)⼋进制:0开头System.out.println(010);(4)⼗六进制:0x或0X开头System.out.println(0X10);计算机存储单位字节(Byte):是计算机信息技术⽤于计量存储容量的⼀种计量单位,⼀字节等于⼋位。
位(bit):是数据存储的最⼩单位。
也就是⼆进制。
⼆进制数系统中,每个0或1就是⼀个位,叫做bit(⽐特),其中8 bit 就称为⼀个字节(Byte)。
转换关系:8 bit = 1 Byte1024 Byte = 1 KB1024 KB = 1 MB1024 MB = 1 GB1024 GB = 1 TBJava的基本数据类型的存储范围1、整型系列(1)byte:字节类型占内存:1个字节存储范围:-128~127(2)short:短整型类型占内存:2个字节存储范围:-32768~32767(3)int:整型占内存:4个字节存储范围:-2的31次⽅ ~ 2的31次⽅-1(4)long:整型占内存:8个字节存储范围:-2的63次⽅ ~ 2的63次⽅-1注意:如果要表⽰某个超过int范围的常量整数它是long类型,那么需要在数字后⾯加L2、浮点型系列(⼩数)(1)float:单精度浮点型占内存:4个字节精度:科学记数法的⼩数点后6~7位注意:如果要表⽰某个常量⼩数是float类型,那么需要在数字后⾯加F或f,否则就是double类型(2)double:双精度浮点型占内存:8个字节精度:科学记数法的⼩数点后15~16位float f = 12.0F;//右边如果赋值⼩数常量值,那么必须加F或f3、单字符类型:char占内存:2个字节4、布尔类型boolean:只能存储true或false计算机如何存储数据1、补码与符号位计算机数据的存储使⽤⼆进制补码形式存储,并且最⾼位是符号位,1是负数,0是正数。
C语言程序设计--数据类型、运算符与表达式 ppt课件
③应本着见名知义的原则。常见初学者有 起a1,b,a2等等。名字虽不影响程序的运 行,但可读性不好,或起成app_num, 可以猜到是表示苹果数。
ppt课件
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。
ppt课件
2
ppt课件
3
§3.2 常量与变量
一、常量和符号常量:
常量:在程序运行的过程中,不能被改变 的量称为常量。
整型常量:12、0、-8
实型常量:4.6、1.23、-0.9
字符型常量:‘a’、‘B’、‘ ’其中‘’ 为定界符,而不是字符型常量的一部分。
ppt课件
4
符号常量:#define PRICE 30
main( ) {float x; x=7.1234567890; printf(“x=%20.18f”,x);}
结果为:x=7.123456954956054690
结果为:b=12345678848。000000
ppt课件
27
三、实型常量的类型
没有必要区分其类型,但事实上是有 区别的。
例如:
ppt课件
11
§3.3 整型数据
一、整型常量的表示方法
1、十进制整数:234、-123等。每个数位 都可以是0---9。
2、八进制整数:以0开头,
(128)10 =0200 。即(200)8每数位都可 以是0-7。 -011表示十进制-9。
3、十六进制整数:以0x开头,
(291)10=(123)16 。每数位都可以是0-9、 A-F。
数据类型和运算符
数据类型和运算符数据类型DAX 可以使用七种常用的数据类型进行计算。
在下面的列表中,我们展示了同一种数据类型在 DAX 种的名称和它更常见的名称。
例如,布尔值(Boolean values)在 DAX 术语中被称为 TRUE/FALSE。
我们更愿意遵循事实上的命名标准,将它们称为布尔值。
除此之外,还有两种比较特殊的类型会在最后介绍•整数 (Integer)•十进制数 (Float)•货币 (Currency), 内部存储为整数的固定小数•日期 (DateTime)•布尔值 (TRUE/FALSE)•文本 (String)•二进制 (Binary)•Blank/Null 类型•变体(Variant)类型DAX 数据类型在不同工具中使用的名称DAX 有一个强大的类型处理系统,因此你不必担心数据类型:当你编写 DAX 表达式时,结果的类型基于表达式使用的术语类型自动调整。
我们称之为隐式转换,但在某些情况下,它不会进行转换。
例如,如果 DAX 函数需要日期数据类型,而你的列的数据类型为文本,DAX函数将不能正常工作。
因此,获取适用于列的正确数据类型是重要并且有用的,如果 DAX 表达式返回的类型不是预期的类型,你需要须检查表达式使用的术语的数据类型。
例如,如果某列的数据类型是日期,那么求和的结果也是日期;然而,如果对整数使用相同的运算符,则结果是整数。
这就是运算符重载,你可以在下图中看到它的行为示例,其中OrderDatePlusOneWeek 列是通过在 Order Date 列的值上增加 7 来计算的。
结果,就像我们说的,是一个日期。
向日期列添加一个整数会导致日期增加相应的天数除了运算符重载之外,在需要时 DAX 还会自动将字符串转换为数字,或者将数字转换为字符串。
例如,如果使用连接字符串的&运算符,DAX 将把它的参数转换成字符串。
例如:•= 5 & 4将返回字符串形式的“54”,另一公式•= "5" + "4"返回数值型结果 9结果值依赖于运算符,而不是引用的列,列根据运算符的要求进行转换。
c语言程序设计--数据类型与表达式(运算符)
c语言程序设计--数据类型与表达式(运算符)(一)程序的基本功能是完成数据处理,而数据处理的过程就是对数据各种运算操作。
(二)运算符是说明特定操作的符号。
(三)算术运算符、关系运算符与逻辑运算符是最常用的三种运算符,除此之外还有一些用于完成特殊任务的运算符,如位运算符。
(四)运算符分类:赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符(五)运算符分为双目运算符和单目运算符,双目运算符位于两个表达式之间,单目运算符的意思是运算符作用于单个表达式,大多数运算符都是双目运算符。
1.赋值运算符①赋值语句的作用是把某个常量或变量或表达式的值赋给另一个变量,符号为“=”②变量在声明的同时可以直接赋值③赋值语句左边的变量必须在赋值前的程序中声明④赋值语句具有方向性,是从右向左操作,即把“=”右边的值赋给等号左边的变量⑤未赋值的变量不可给其他变量赋值2.算术运算符①单目减运算符相当于取反值,若是正值就变成负值,若是负值就变成正值单目加运算符没有任何意义,只是为了和单目减运算符凑成一对②运算符的运算顺序:先乘除后加减,单目正和单目负最先运算③模运算(%)用于计算两个整数相除所得的余数3.数据类型强制转换例:a=(int )(7.0/4); //a=1a=(float)(7/4); //a=1a=(float)(7.0/4); //a=1.75//“()”的优先级最高4.逻辑运算符逻辑运算符是根据表达式的值来返回真值或假值。
规定:非零为真值,零为假值。
&&:逻辑与;真&&真=真;真&&假=假;假&&真=假;假&&假=假;||:逻辑或;真||真=真;真||假==真;假||真=真;假||假=假;!:逻辑非;!真=假;!假=真;5.关系运算符关系运算符是对两个表达式进行比较,返回一个真值或者假值6.自增自减运算符自增运算符和自减运算符对变量的操作结果是变量的值加一或者减一例:count++count--当变量单独存在时,自增或自减运算符在变量前或者变量后对于变量的影响是一样的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3讲数据类型转换和
运算符
1
上次回顾
Ô8个基本特性数据类型及特性Ô变量的声明,初始化及基本应用
2
本讲目标
Ô掌握数据类型的转换(重点)
Ô掌握运算符的使用(重点)
3
数据类型之间的转换
Ô在编程时,把一种类型的值赋给另外一种类型的变量是很常见的。
Ô类型转换的种类:
Ô自动转换
Ô强制转换
4
自动类型转换
Ô自动类型转换的条件
Ô类型兼容
Ô目标类型大于源类型
例如:
byte b = 12;
int i;
i = b; //自动类型提升,也叫做拓宽转换5
自动类型转换
Ô数字类型是相互兼容的。
Ô数字类型和char,boolean类型不兼容。
例如:int i = 10;
double d;
d= i;
错误的例子:
int i = 0;
boolean b = i;//错误
6
强制类型转换
Ô有的时候,我们需要把double值当作整型值来使用,这时我们需要进行强制转换。
当然,有可能丢失精度。
Ô强制转换的语法是在圆括号中给出要转换的目标类型,随后是待转换的变量名。
例如:
double d = 125.685;
int a = (int)d;
Ô注意:强制转换可能导致精度丢失或错误结果,所以不可随意滥用。
7
数据类型转换规律
Ô上图是合法的数据类型之间的转换。
6个实心
箭头代表无损转换,3个虚线代表有可能丢失
精度。
8
表达式中数据类型的自动提升Ô当使用二元运算符对两个值进行运算的规则:Ô1.如果两个操作数中有一个是double类型,则另一个将会转换成double型;
Ô2.如果两个操作数中有一个是float类型,则另一个将
会转换成float型;
Ô3.如果两个操作数中有一个是long类型,则另一个将
会转换成long型;
Ô4.否则,两个操作数都转换成int型。
9
表达式中数据类型的自动提升
Ô例如:
int i = 100;
double d = 100.23;
float f = 1.2F;
double b = i + (d + f);
Ô表达式i + (d + f)最终的结果自动提升为double 类型。
10
算数运算符
Ô在Java中,+ 、-、* 、/、%表示加、减、乘、除、取模运算。
Ô当参与除法运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法。
例如:
15/2 等于7 (规则4)
15.0/2等于7.5 (规则1)
15%2等于1(求余数)
Ô注意:整数除以0会产生异常,而浮点数除以0会得到无穷大或NaN。
11
二元运算符的简化格式
Ô可以在赋值语句中使用简化的格式书写二元运算符。
通常,将运算符放在赋值号的左侧(*=、%=等)。
Ô例如:
x+=4;
等价于
x = x + 4;
x*=4;
等价于
x = x* 4;
12
自增运算符和自减运算符
Ô将数值变量加1和减1是比较常见的操作,Java中借鉴了C和C++的语法:n++使n的当前值加1,n--使当前n的值减1。
例如:
int n = 4;
n++;
n的值变为5
Ô刚才使用的”后缀”方式,还有一种”前缀”方
式:++n,--n。
同样是对变量值加1或减1。
13
自增运算符和自减运算符
Ô这两种方式如果不在表达式中结果是相同的,否则就产生了区别。
例如:
int m = 7;
int n = 7;
int a = 2 * ++m; // 现在a 是16, m 是8
int b = 2 * n++; // 现在b is 14, n 是8
Ô前缀方式先进行加1运算,后缀方式则使用变量原来的值。
14
关系运算符
ÔJava中具有各种关系运算符。
关系表达式的结果只能是true或false。
Ô其中,使用==检测是否相等,使用!=检测是否不相等。
例如:
3!=8的值为true,3==8的值为false。
Ô其它的关系运算符还有:<、>、<=、>=。
15
逻辑运算符
Ô与C++相同,Java中使用&&表示逻辑”与”、使用||表示逻辑”或”、使用!表示逻辑”非”。
例如: (1>5)||(6>0) 的值为true
Ô&&和||是按照”短路”方式求值的。
如果第一个操作数已经能够确定值,第二个操作数就不进行计算了。
例如:
(5>1)||(6>0) 的值为true
第一个表达式的值为true,已经能确定整个表达式的值,那么第二个表达式的值不会计算了。
16
位操作符
Ô在操作整型数时,可以使用位操作符号直接处理组成这些整数的各个位。
位操作符有:&(与)、
|(或)、^(异或)。
例子:
5&7等于5 5转换成二进制为101
5|7等于7 7转换成二进制为111
5^7等于2 5&7运算结果101
理解即可,不要求掌握,
17
18条件运算符和赋值运算符,如? :、=、*=、/=、+= 和-=
6.
逻辑运算符,如&、^、|、&&、|| 5.
关系运算符,如>、>=、<、<=、== 和!= 4.
算术运算符,如*、/、%、+ 和-3.
一元运算符,如-、++、--和! 2.
括号,如( ) 和[ ]1.
运算符顺序
运算符的优先级
Ô表达式通常由多个运算符组成。
优先级的规则决定每个运算符在任何给定表达式中的计算顺序
Java语言程序设计与开发
总结
Ô数据类型的相互转换
Ô算术运算符、关系运算符、逻辑运算符、位运算符、自增、自减运算符
20
Java语言程序设计与开发
课后任务Ô完成学习手册上的实验和题目
21。