1.补充知识1:求出某种数据类型的正数的最大值,可以先+1,得出1000.....,这样的方便运算,最终的结果再-1即可
1111 1111
+ 1
----------
1 0000 0000
2.补充知识2:进制的转换,我们可以先转成16进制然后再转二进制
60->2
60->16(3C)-->00111,100 ->74
3.补充知识3:由源码求补码的快捷方式
a:10110011
01001100
b:11101101
00010010
补充:由源码求补码?从右向左寻找到第一个数字1,其右侧的内容不变(包含找到的1不变)
,左侧的内容取反,符号位不变
源码:0b10110100
0b11001100
4.补充知识4:byte类型的数据范围:
正数最小值: 0 000 0001(+1)
正数的最大值:0 111 1111(+127)
0: 0 000 00000(0)
负数:
负数的最小值:1 111 1111(-127)
负数的最大值:1 000 0001(-1)
1 000 0000?表示什么呢?0111 11111+1
当用某种数据类型的正数的最大值+1之后,此时发生了一种情况,符号位变成了1,其余全是0
这样的话,此时的符号位1既代表符号位,又代表数值位(-128)
5.补充知识5:
对于整数而言,当超出int的范围赋值时,数字后面加L
对于小数而言,当给float类型赋值时要加F
int类型:2^31-1
cahr类型(无符号数,2个字节):2^16-1
6.补充知识6:*********************重点掌握,大家******************
int a =10;
int b;
b = a++;<==>b = (a++);
第一步:a++是一个表达式,因为++符号在后面所以先使用a,a++表达式的值是10
第二步:进行++运算,相当于a = a+1,这样a变成11
第三步:进行赋值运算,将第一步整个表达式的值(10),赋值给变量b
class Demo{
public static void main(String[] args){
int a =10;
int b=0;
//b = ++a;//第一题
a = a++;
System.out.println(a);
}
}
7.根据变量的作用范围来分?
(1).局部变量:在方法声明上定义的变量或者在方法内部定义的变量,在整个方法内部有效
(2).成员变量(实例变量,类变量):
a.实例变量在类中方法外定义的变量(不用static修饰),在整个实例(对象)中有效
b.类变量在类中方法外定义的变量(用static修饰),在整个类中有效
8.调用和被调用
(1).形式参数:在方法声明时所定义的参数
(2).实际参数:在调用该方法时,所给定的实际的参数
9.利用/和%求出一个四位数字中的个位,十位,百位,千位上的数字并输出1234
10.给定一个小写字母,将其变成大写字母并输出
11.讲一下a = a++;
/*
int a = 3;
int x = 0;
x = a++;//a=4, x=3
x = a++;//a=5, x=4
x = a++;//x=5,a = 6
System.out.println("x = "+x);
x = x++;//x=5
x = x++;
x = x++;
System.out.println("x = "+x);
*/
1.表达式:变量和运算符连接而成的式子如:a+b,a++,a--
2.x = a++;(里面有两个运算符++和=,但是++的优先级要高于=)
(1)是将(a++)表达式的值赋值给变量x,而不是将a的值赋值给变量x,所以我们要先计算a++表达式的值,由于++符号在a的后面,所以先使用a的值,
作为表达式的值,所以a++表达式的值是3
(2)进行++运算,a=a+1,a变成4,但是不管a的值变为了多少,都不会影响第(1)步中的表达式a++的值(3)
(3)进行赋值运算,将a++表达式的值(第一步已经算出来了3)赋值给x,x变为3 |
|