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