JAVA学习笔记->进制转换,运算符

来源:互联网 发布:mac 文件夹无法移动 编辑:程序博客网 时间:2024/06/10 06:00

一、进制转换

1、所有进制转十进制,按权展开
2、十进制转所有进制,除以进制的余数逆排法
3、n进制表示的最大数2的n次方减一
4、负数的二进制,该数的绝对值二进制加1,即补码
5、补码转二进制:补码减一取反
6、-1在内存在的表现形式全是1

二、数据类型

1、基本数据类型:
整形:byte(8),short(16),int(32)默认,long(64)
浮点:float(32),double(64)默认
字符型:char(16)
2、引用类型:
class(类),interface(接口),[](数组)
3、int转float,long转float,double都有精度损失
4、变量定义格式:
数量类型 变量名 初始值
5、将大数据放到小变量类型,编译错误(可能损失精度)

三、强制类型转换

byte b = 3;
b = b + 2;//编译错误,损失精度改为b = (byte) (b + 2)

四、ASCII表

0 48, A 65,a 97

五、模运算

1、左边小于右边 等于左边(1%5=1)
2、两边相等等于0 
3、1 % -5 = 1,-1 % 5 = -1(看左边)

六、逻辑运算符:用于连接两个布尔表达式

1、异或(^)两变相同false,不同true,一个位与1相异或取反,与0相异或不变

2、&& (短路) a != 0 && 6 / a
注意:1、!不能用于常量(!2),只能用于布尔表达式
     2、~不能用于布尔表达式(~true)
技巧:不用第三方变量交换两数
1、第一种
int a = 4, b = 8;
a = a + b;
b = a - b;
a = a - b;
2、第二种
int a = 4, b = 8;
a = a ^ b;
b = a ^ b;//b = (a ^ b) ^ b;//一个数异或同一个数两次还是原数
a = a ^ b;//a = a ^ (a ^ b);
3、还有一种是用第三方变量
int temp = a;
a = b;
b = temp;
3、一个位与1相与可以得到该位的值,与0相与清零

七、移位操作

1、向左移n就等于该数乘以2的n次幂
2、向右移n就等于该数除以2的n次幂
3、一个数异或同一个数两次等于原数
应用:通过移位将十进制转成其他进制
1、转成16进制
int a = 60;int n1 = a & 15;//取低4位a = a >>> 4;//右移4位,int n2 = a & 15;在取低4位,相当于原数的第二个4位System.out.print(n2);if (n1 > 10) {   System.out.print((char)((n1 - 10) + 'A'));} else {   System.out.print(n1);}