自增自减运算练习题
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
*/