自增自减运算练习题

1)案例1:定义变量 int a = 10;int b = 5;分别计算a++和++a的结果; 以及--b和b--的结果;

package com.tohka;

public class Demo3 {
    public static void main(String[] args) {
    /*    案例1:定义变量 int a = 10;int b = 5;
        分别计算a++和++a的结果; 以及--b和b--的结果;*/
        int a = 10;
        int b = 5;
        System.out.println(a++);//10  a = 11
        System.out.println(++a);//12
    }
}

2)案例2:定义变量 int x = 20;int y = 15;

​ 依次计算以下结果:

​ ++x + y;

​ y-- + x;

​ x++ + y;

package com.tohka;

public class Demo4 {
    public static void main(String[] args) {
/*        案例2:定义变量 int x = 20;int y = 15;
​		  依次计算以下结果:
​			++x + y;
​			y-- + x;
​			x++ + y;*/
        int x = 20;
        int y = 15;
        System.out.println(++x + y); //21+15=36   x = 21 y =15
        System.out.println(y-- + x); //15+21=36   x = 21 y =14
        System.out.println(x++ + y); //21+14=35   x = 22 y =14
     }
}

short s = 5; s = s + 1; 代码是否有错? short s = 5; s += 1; 代码是否有错?

// short s = 5; s = s + 1; 有错, s自动提升类型为int, s + 1 结果为int
// 无法直接给short类型的变量s赋值

进制转换

其他进制转十进制:分别计算基数乘以系数的权次幂求和
十进制转其他进制:辗转相除倒取余
二进制与其他进制转换:8421,从右往左,高位补0

计算机只能存储二进制的数据,且都是存储的他们的补码

正数源码即它的二进制表示,正数的源码补码反码都相同;
负数源码为它的最高位为1的二进制表示,反码为最高位符号位不变,其余位取反,补码在反码的基础上最低位+1

   // 案例1: 一个减法程序, 5-3, 使用原码,还原底层运算过程?
		/*
		  1) 计算机存储5,正数,补码形式, 正数补码和原码一致
		     0000 0101
		  2) -3补码计算出来
		     1000 0011  原码
			 1111 1100  反码
			 1111 1101  补码
		
             0000 0101
			 1111 1101
			10000 0010  最高位的1溢出,舍掉, 效果变成0000 0010
		*/