JavaSE基础语法
一、进制
位(bit) — 计算机中最小的存储单位
字节(byte) — 计算机中基本的存储单元 (最小的数据单位为字节)
1byte = 8bits、1KB = 1024Byte、1MB = 1024KB、1GB = 1024MB、1T = 1024GB
对于整数,有四种表示方式:
- 二进制:0,1 ,满2进1. 以
0b或0B
开头(字母B大小写均可)。 - 十进制:0-9 ,满10进1.
- 八进制:0-7 ,满8进1. 八进制数被冠以
0
来表示。 - 十六进制:0-9及A-F,满16进1; 十六进制数被冠以
0X
来表示(字母X大小写均可)
如: 0x3f20(十六进制) 0732 (八进制)
public class JinZhi{
public static void main(String[] args){
//最终打印的结果是十进制
System.out.println("十进制:" + 10);
System.out.println("二进制:" + 0B10);
System.out.println("八进制:" + 010);
System.out.println("十六进制:" + 0X10);
}
}
println()打印默认按照十进制打印
十进制:10
二进制:2
八进制:8
十六进制:16
1.1 进制转换
1.1.1 二进制与十进制之间的转换
1.1.2 二进制 八进制 十六进制互转
二进制转八进制:三位一组,算出这三位对应的十进制值,然后挨个连接上即可
二进制转十六进制:四位一组,算出这四位对应的十进制值,然后挨个连接上即可
1.1.3 十进制与八进制或十进制与十六进制之间的转换
建议通过二进制过渡一下
二、原码反码补码
0、 数字在计算机内部的存储形式
-
带符号的二进制形式存储
最高位存放符号, 正数为0, 负数为1。 -
比如:
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位。
1、原码
原码即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
2、反码
- 正数的反码是其本身
- 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
3、补码
- 正数的补码就是其本身
- 负数的补码是在反码的基础上+1
为什么要使用原码、反码、补码表示形式呢?
- 计算机在执行计算的时候,实际运算都是补码在运算,运算完再转成原码
- 举例说明:1 - 1 = 1 + (-1) = 0
注意: 补码在做运算的时候符号位也参与运算
4、-128
0000 0000:0
0000 0001 ~ 0111 1111 : 1~ 127
1000 0001 ~ 1111 1111 : -127 ~ -1
1000 0000:-128
(-127) - (1) = -128
(1000 0001 - (0000 0001)= (1000 0000)
-1 - 127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补
就应该是-128.
但是此时如果用[1000 0000]补
到反码,再到原码去计算是不对的,所以-128是个特殊值,记住它
二、运算符
-
运算符:
1、算术运算符
2、赋值运算符
3、比较运算符(关系运算符)
4、逻辑运算符
5、条件运算符
6、位运算符 -
表达式
表达式 = 操作数+运算符,是一个有明确结果的计算式;可以当做一个值来用
1、算术运算符
(1)加、减、乘、除:+、-、*、/
除:当两个整数相除时,只保留整数部分
(2)取模(求余数):%
取模:被模数%模数,当模数有负号时,会被忽略
@Test
public void test02(){
System.out.println(5/2);//2
System.out.println(5/-3);//-1
System.out.println(5%2);//1
System.out.println(5%-3);//2
System.out.println(-7/2);//-3
System.out.println(-7/-3);//2
System.out.println(-7%2);//-1
System.out.println(-7%-2);//-1
//取模的符号跟左边对其
}
(3)+:作为单目运算时表示正数
与其他基本数据类型计算时当做加法用
当与字符串String类型进行运算时表示连接,计算结果是字符串String类型
(4)-:作为单目运算符时表示负数
与其他基本数据类型计算时当做减法用
(5)++,-- 自增和自减
++在前,变量先自增,然后参与其他运算,在后,变量的值先参与其他运算,然后变量本身在自增
–类似