23天学习Java编程(第三天:运算符)

23天学习Java编程(第三天:运算符)


局部变量:
1)定义在方法的里面
2)必须先赋值后使用
3)作用域:声明点到方法的右半个花括号
实例变量:
1)定义在类的里面方法的外面
2)可以不用初始化直接使用(有默认值)
3)作用域:类的内部
作用域:指标识符可以使用的有效范围
可见性:指标识符可以被访问、引用的范围
作用域内不一定可见,但可见一定在作用域内

编译错误
1)查看报错信息,定位错误所在
2)通过添加、删除程序法,缩小错误范围(注释)
运行错误

任意进制到十进制的转换
1:任意进制到十进制的转换原理
系数:就是每一位上的数据
基数:X进制,基数就是X
权:在右边,从0开始编号,对应位上的编号即为该位的权
结果:把系数*基数的权次幂相加即可
2:练习
十进制–十进制
二进制–十进制
八进制–十进制
十六进制–十进制
十进制到任意进制的转换
1:十进制到任意进制的转换原理
除积倒取余
2:练习
十进制–十进制
十进制–二进制
十进制–八进制
十进制–十六进制

原码反码补码
1:为什么要学习原码反码补码?
后面要学习位运算、强制类型转换,如果不知道有原反补会看不懂结果
2:有符号数据表示法的几种方式
原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
通过一个字节,也就是8个二进制位表示+7和-7
0(符号位) 0000111
1(符号位) 0000111
反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
11111000(-7)
补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
11111001(-7)

注意:计算机中,数都以补码的形式存放,
正数的补码是其本身,负数的补码是其绝对值取反加1;
如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码
如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1

运算符:
左值 = 右值
int a = 10;
a += 10;//a = a + 10;

10 = a;
String s = “hello”;
a = s;

1)数据类型要匹配
2)左值只能是变量
3)复合赋值运算符会将右值的类型隐式地转换为左值的类型,可能会造成数据损失

学生类
人类

学生类 s = …

instanceof:判断对象是否是某一类类型;不能操作基本数据类型
==对于基本数据类型,判断值是否相等;对于类类型,判断地址是否相同

int a = 12; a << 2;
左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。
其实,向左移n 位,就相当于乘上2的n次方
右移运算符用符号“>>>”表示,逻辑右移,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n位,就相当于除上2 的n次方。
带符号的右移运算符用符号“>>”表示,算数右移,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1

&:与0相&,将某位清零
|:与1相|,将某位置一
:与1相,将某位反转

0&0 = 0
0&1 = 0
1&1 = 1
0|0 = 0
0|1 = 1
1|1 = 1
0^0 = 0
0^1 = 1
1^1 = 0
~0 = 1
~1 = 0

&&:逻辑运算符,具有逻辑短路功能(连接的两个条件,如果第一个条件为假,后面的条件不进行运算)
&:位运算符,但可以连接连个条件,但没有短路功能

三目运算
value1?value2 :value3

基本数据类型转换
1)隐式类型转换:位宽度窄的,向位宽度宽的转换
int a = 10;
long b = a;
2)显示类型转换(强制类型转换):位宽度宽的,向位宽度窄的转换
int a = 10;
short b = (short)a;

类类型转换:
1)隐式类型转换:子类向父类类型转换
String s = “hello”;
Object o = s;
2)显示类型转换:父类向子类类型转换
Student s;
Person p;
p = (Person)s;

练习:
1)交换两个数
int x =5,y=10; //定义两个变量
x = x^y;
y = x^y; //y=(xy)y
x = x^y; //x=(xy)x
System.out.println(“x=”+x+“y=”+y);
^的特点:一个数据对另一个数据位异或两次,该数本身不变。
2)(int)(char)(byte)-1
111111111111111111111111
1111,1111 byte
1111,1111,1111,1111 char
0000,0000,0000,0000,1111,1111,1111,1111 int
类型转换时,有符号数采用符号扩展,无符号数采用0扩展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值