【幻化万千戏红尘】qianfengDay02-java基础学习:运算符、进制转换

常用命令:
“F:”进入到指定盘符
“cd 路径”:进入到指定路径下

javac 编译
java执行

标识符:
数据类型:基本数据类型、引用数据类型

今日内容:

常量:13
变量:一块内容可以改变的内存,存储数据
变量名:标识符
变量值:内存中的数据
变量想被使用,那么必须,先声明后赋值
声明的格式:数据类型 变量名;
赋值的格式:变量名=变量值;
数据类型(声明) 变量名=变量值(赋值);
例:int num = 12;
格式:数据类型 变量名[=值];

字符和字符串的区别?
字符:单引号,内部只有一个字符
字符串:双引号,内部可以有多个字符
byte范围:-128到127
java的整型默认都为int型,小数数据都默认为double型,

格式:数据类型 变量名[=值]

数据类型:
1、基本数据类型:数据类型为基本类型
2、引用数据类型变量:数据类型为引用类型

作用域分:
1、局部变量:定义在方法块中的变量(声明在方法代码块中的变量),作用范围就是方法内部
2、全局变量:定义在类的内部,方法的外部,作用于整个类中

java中的运算符:
1、算术运算符+、—、*、%、++、--
例:int b= ++(++i);//不可以,报错。相当于int b= ++(i=1);这是不合法的
int c*=i++;//是错误的,
int c=2;c*=i++;或c*=++i;都是正确的。c*=++(i++);或c*=--(++i);都是错误的
int i=1;
int b=++(++i);//不可以,错误的
int c*=i++;//是错误的,


2、赋值运算符:主要赋值
=、+=、-=、/=、%=

3、关系运算符>、<、>=、<=、==、!=,结果为布尔类型。

4、逻辑运算符:主要应用在布尔类型,结果都是布尔类型
!(非):!true==false
^(异或):true^false==true,true^true==false
&(与):且,同时为true才为true
&&(短路与):且,同时为true才为true
|(或):或者,只要一个为true,那么结果为true
||(短路或):或者,只要一个为true,那么结果为true

短路与和与的区别?
与(&):无论左边是否为false,都会验证右边的表达式
短路与(&&):只要左边为了false,那么右边就不会验证
或(|):无论左边是否为true,都会验证右边的表达式
短路或(||):只要左边为true,那么右边就不会验证

8、int a = 5;
int b = 4;
boolean b9 = (a++)>(--b) & (--a)%(b++)==1 &(a--)<(b--);
System.out.println(b9+" "+a +" "+b);//

5>3&5%3==1&5<4
true&false&false=false
a=4,b=3;

a = 5;
b = 4;
boolean b10 = (a++)>(--b) && (--a)%(b++)==1 && (a--)<(b--);
System.out.println(b10+" "+a +" "+b);
true&&false&& (a--)<(b--)=false
a=5,b=4

9、a = 6;
b = 9;
boolean b11 = (a--)/(b++)<2 | (--a)*(--b)!=4 | (a++)%(b--)==2;
System.out.println(b11+" "+a +" "+b);//

6/9<2|4*9!=4|4%9==2
true
a=5,b=8

a = 6;
b = 9;
boolean b12 = (a--)/(b++)<2 || (--a)*(--b)!=4 || (a++)%(b--)==2;
System.out.println(b12+" "+a +" "+b);

true
a=5,10

5、位运算符:操作的是每一个二进制数
位:就是一个二进制数:0或1
字节:由8位二进制组成的B
~(按位取反):取相反的
^(按位异或):相同则为0,不同则为1
|(按位或):同则同,异为1
&(按位与):同则同,异为0

二进制和十进制之间的转换:
二进制和十进制之间的转换?
十进制---- >二进制:除2取余、除尽为止
二进制---- >十进制:累加求和
负十进制----负二进制:
取绝对值
转换为二进制
取反加1
负二进制----负十进制:
减1取反(或取反加1)
转换为十进制正数
乘 -1

13--->二进制
-123-->101

64+32+16+8+2+1

7<<2

(左移)<<:左移,a<<b:a向左移动b位,a<<b:公式a*2的b次幂。
有符号右移>>:a>>b:a向右移动b位
无符号右移>>>:a>>>:a向右移动b位,a>>>b公式:a/2的b次幂
例:8>>>1等价于8/2    -7>>>2-->1073741822


计算机的进制:
1、二进制:机器识别:0和1组成
2、十进制:生活用的,由0到9的数字组成
3、八进制:由0到7组成,逢八进位,借1顶8,要求以0开头
4、十六进制:由0到9还有A到F,要求以0x开头

6、字符串连接运算符:结果就是一个字符串+

三目运算符:X?Y:Z;
X若为true则选Y,若为false则选Z。
例1:int num1=5,num2=3;
String result = num1>num2?"真的啊":"假的吗"
//输出:真的啊
例2:System.out.println(false?'A':'z');//z
int i= 2; 3>4?1.0*i/1:i/5;
答案为:5.0
int i = 2;  3>4?1.0*i/1:i/5;
答案为:0.0

表达式:由变量和运算符按照一定规则组成的语句
表达式的类型:就是结果的数据类型
表达式的值:表达式的结果


推断表达式的值:
根据优先级进行结合,一步步的计算每一步涉及到的变量的值

明天课程:
分支:
1、if-else
2、switch

今日作业:

1.已知m,n,k是整型变量,执行下列语句后, m,n,k分别是多少?
m = n = k = 8;  m += n += k += 1;
m =11 ;n =10 ; k =9;

2.int n = 5;n = ++n + ++ n;求n=?
n=13

3.int n = 3;n = ++n + n++;求n=?
n=8

4.int x = 4 , y = 2 , z = 3;求表达式y-=z++*--x的值是多少?
表达式运行之后,x,y,z的值分别是多少?
值是:-7,x=3,y=-7,z=4


5.请写出下面表达式的输出结果:
int a =11;
int b =21;
boolean ben1 = (--a)%(++b)<10 | (a++)/(b--)!=11 | (++a)*(--b)==20 |(++a)<(--b);
System.out.println(ben1+" "+a +" "+b);
//true  13  19

boolean ben2= (--a)%(++b)<10 || (a++)/(b--)!=11 || (++a)*(--b)==20 ||(++a)<(--b);
System.out.println(ben2+" "+a +" "+b);
//true  11  21

6.请计算:
a=3,b=4;
(1):(a++)/3+(--b)*2-(a--)%6+(b++)*3-(b--)
//3/3+3*2-4%6+3*3-4=1+6-4+9-4=8

a=3,b=4
(2):(++b)*2-(a--)%4+(a++)*5-(--b)/2+(--a)
//5*2-3%4+2*5-4/2+2=10-3+10-2+2=17

a=3,b=4
(3):(a--)*6+(b++)/3-(--a)*2-(--b)*2+(++a)
//3*6+4/3-1*2-4*2+2=18+1-2-8+2=11

原文地址:https://www.cnblogs.com/weigongcheng/p/5664702.html