今天主要是进制的认识、转换和运算符中的算术运算符学习。
进制:
二进制(binary):0,1;满2进1,以0B或0b开头;
八进制(octal):0-7,满8进1,以数字0开头;
十进制(decimal)0-9,满10进1
十六进制(hex),0-9及A-F,以0x或OX开头表示,此时的A-F不区分大小写
0x21AF + 1 =0X21B0
二进制与十进制转换——二进制转十进制
首位是符号位,0是正数,1是负数
0 0 0 0 1 1 1 0 表示14
1 0 0 0 1 1 1 0 表示-14
原码、反码、补码
对于正数来说,三码合一
对于负数来说
1 0 0 0 1 1 1 0 表示-14,原码
1 1 1 1 0 0 0 1(除符号位外都变),这是-14的反码
1 1 1 1 0 0 1 0(最后一位+1),这是-14的补码
-
计算机底层都以补码的方式来储存数据!
-
从127的原码到-127的补码解释了为什么byte范围是-128~127,以此为循环
-
二进制与十进制转换——十进制转二进制 方法:除2取余数的逆。
-
以13为例 二进制与八进制/十六进制的转换
-
八进制就把二进制三个三个一起看
-
十六进制就把二进制四个四个一起看
进制代码:
class BinaryTest{
public static void main(String[] args)
{
int num1 = 0b110;
int num2 = 110;
int num3 = 0127;
int num4 = 0x110a;
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("num3 = " + num3);
System.out.println("num4 = " + num4);
}
}
运算符
算术运算符
- , - ++, –
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符(//用的很少)
三元运算符
/*
- 算术运算符
-
-
-
/ % (前)++ (后)++ (前)-- (后)-- +
*/
代码:class AriTest{ public static void main(String[] args) { //除号:/ int num1 = 12; int num2 = 5; int result1 = num1 / num2; //2 System.out.println(result1); int result2 = num1 / num2 * num2; // 10 System.out.println(result2); double result3 = num1 / num2; System.out.println(result3); double result4 = num1 / num2 + 0.0; double result5 = num1 / (num2 + 0.0); double result6 = (double)(num1 / num2); double result7 = (double)(num1) / num2; System.out.println(result4); System.out.println(result5); System.out.println(result6); System.out.println(result7); // %:取余运算 // 结果的符号与被模数的符号有关 // 开发中,经常用%判断能否被除尽的情况 int m1 = 12; int n1 = 5; System.out.println("m1 % n1 = " + m1 % n1); //2 int m2 = -12; int n2 = 5; System.out.println("m2 % n2 = " + m2 % n2); //-2 int m3 = 12; int n3 = -5; System.out.println("m3 % n3 = " + m3 % n3); //2 int m4 = -12; int n4 = -5; System.out.println("m4 % n4 = " + m4 % n4); //-2 //(前)++ : 先自增1,然后再运算; //(后)++ : 先运算,再自增1 int a1 = 10; // int b1 = ++a1; // +在前,先运算a1+1=11,然后再把11赋给b1 // a1=11,b1=11 int a2 = 10; int b2 = a2++; // +在后,先赋值,b2=10 // a1=11,b1=10 int a3 = 10; ++a3;//a3++ int b3 = a3; System.out.println("a1 = " + a1 + ", b1 = " + b1); System.out.println("a2 = " + a2 + ", b2 = " + b2); // 注意点 short s1 = 10; //s1 = s1 + 1; 编译失败 //s1 = (short)(s1 + 1); //可以 s1++;//自增1,不会改变本身变量的数据类型; System.out.println(s1); //问题 byte bb1 = 127; bb1++; System.out.println("bb1 = " + bb1); //(前)--: 先自减1,然后运算; //(后)--: 先运算,再自减1 int a4 = 10; int b4 = --a4; System.out.println("a4 = " + a4 + ", b4 = " +b4); int a5 = 10; int b5 = a5--; System.out.println("a5 = " + a5 + ", b5 = " +b5); } }
-
-
注意前++和后++
前++是先自加1再赋值
后++是先赋值再加1
前–和后–同理