1.十进制转二进制的算法
除基取余法——》基为n进制里的n
例:64的二进制为:64/2 = 32,余数为0;32/2=16,余数为0;16/2=8,余数为0;8/2=4,余数为0;4/2=2,余数为0;2/2=1,余数为0;则64的二进制为1000000。
2.Java运算
注意:当byte、short、char参与运算时自动转换成int类型进行运算,注意=左侧变量的类型是否>=int类型,否则需要强制转换成该变量的类型。
注意:byte b = b + 1 ;× 因为b参与运算会转换成int类型,运算后是int类型值,不能赋值给byte类型
b+=1;√
计算机中数据最小的单位
计算机中数据最小的组成单元:使用8个二进制位为一组,称之为一个字节(byte,简称B) 字节中的每个二进制位就称为 位(bit,简称b), 1B = 8b
注意:Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或者0b、0、0X或者0x开头。
3.进制转换
二进制巧转八进制方法(8421法,去掉8):二进制从后向前每三个一组,每组第一个数为4,第二个数为2,第三个数为1,组内相加,最后连接到一起就是八进制数。
例:97:01100001——》01、100、001——》141。
二进制巧转十进制方法(128 64 32 16 8 4 2 1法):二进制从后向前依次为1、2、4、8、16、32、64、128。依次相加即为十进制数。
例:97:01100001——》1+32+64——》97。
二进制巧转十六进制方法( 8 4 2 1法):二进制从后向前每四个一组,每组第一个数为8,第二个数为4,第三个数为2,第四个数为1,组内相加,最后连接到一起就是十六进制数。
注意:16进制中的10为A,一直到F。
例:250:11111010——》1111、1010——》FA。
计算机的数据单位
计算机最小的组成单元是:字节,1B = 8b。 在B的基础上,计算机发展出了KB、MB、GB、TB、…. 这些数据单位。
1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
4.数据类型的分类
基本数据类型和引用数据类型
基本数据类型:4大类8种。
数据类型 | 数据类型 | 内存占用(字节数) | 数据范围 |
---|---|---|---|
整型 | byte | 1 | -128~127 |
整型 | short | 2 | -32768~32767 |
整型 | int(默认) | 4 | -2147483648~2147483647 (10位数,大概21亿多) |
整型 | long | 8 | -9223372036854775808 ~ 9223372036854775807 (19位数) |
浮点型(小数) | float | 4 | 1.401298 E -45 到 3.4028235 E +38 |
浮点型(小数) | double(默认) | 8 | 4.9000000 E -324 到1.797693 E +308 |
字符型 | char | 2 | 0-65535 |
布尔型 | boolean | 1 | true,false |
Why?
随便写的整数、小数字面量,他们默认什么类型? 23 ,默认是int类型 , 加上L/l就是long类型的数据了。 23.8,默认是double类型,加上F/f就是float类型了。
5.类型转换
自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量。
自动类型转换的其他形式:
byte ——》short (char) ——》 int ——》 long ——》 float ——》 double
表达式的自动转换类型
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。
byte 、short、char ——》 int ——》 long ——》 float ——》double
注意事项:
表达式的最终结果类型由表达式中的最高类型决定。 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
注意:byte b = b + 1 ;× 因为b参与运算会转换成int类型,运算后是int类型值,不能赋值给byte类型
b+=1;√ b+=1——》b=(byte)(b+1);
强制类型转换可能造成数据(丢失)溢出; 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
6.运算符
注意:System.out.println(3+4+"连接"+5+7); 输出的是:7连接57;方法:从左向右运算,遇到字符串连接并自身变成字符串,+5相当于"7连接"+5——》"7连接5"。
与字符串做+运算时会被当成连接符,其结果还是字符串。
识别技巧:能算则算,不能算就在一起。
自增:
++i;先自增后参与运算;
i++;先参与运算后自增;
符号 | 例子 | 作用 | 结果 |
---|---|---|---|
> | a>b | 判断a是否大于b | 成立返回true、不成立返回false |
>= | a>=b | 判断a是否大于或者等于b | 成立返回true、不成立返回false |
< | a<b | 判断a是否小于b | 成立返回true、不成立返回false |
<= | a<=b | 判断a是否小于或者等于b | 成立返回true、不成立返回false |
== | a==b | 判断a是否等于b | 成立返回true、不成立返回false |
!= | a != b | 判断a是否不等于b | 成立返回true、不成立返回false |
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2 > 1 & 3 > 2 | 多个条件必须都是true, 结果才是true; 有一个是false,结果就是false |
| | 逻辑或 | 2 > 1 | 3 < 5 | 多个条件中只要有一个是true, 结果就是true; |
! | 逻辑非 | ! (2 > 1) | 就是取反:你真我假,你假我真。!true == false、!false == true |
^ | 逻辑异或 | 2 > 1 ^ 3 > 1 | 前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true |
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
&& | 短路与 | 2 > 10 && 3 > 2 | 判断结果与“&”一样,过程不同:左边为 false**,右边则不执行。** |
|| | 短路或 | 2 > 1 | | 3 < 5 | 判断结果与“|”一样,过程不同:左边为 true**, 右边则不执行。** |
Why?
1.API是什么?API文档是什么?
Application Programming Interface,应用程序编程接口:Java写好的程序,咱们可以直接调用。 Java提供的程序使用说明书。
2.Java程序中如何实现接收用户键盘输入的数据?
使用Java提供的Scanner来完成,步骤如下: 1、导包:import java.util.Scanner; 2、抄代码得到扫描器对象: Scanner sc = new Scanner(System.in) 3、抄代码等待接收用户输入的数据: int age = sc.nextInt(); String name = sc.next();