基础运算:
1,System.out.println(~6); 打印结果为-7。(暂不知道原因)
2,通过异或运算符来实现两个变量之间值的交换。
int n = 3,m = 8;
System.out.println("n="+n+",m="+m);
n = n ^ m;
m = n ^ m;//(n^m)^m;
n = n ^ m;//n ^ (n ^ m)
System.out.println("n="+n+",m="+m); 打印结果:n=8,m=3
另外还有两种方式可以达到值交换的目的:如下
a,通过第三方变量。
int temp;
temp = n;
n = m;
m = temp;
b,不用第三方变量。
11 = 3 + 8;
3 = 11 - 8;
8 = 11 - 3;
n = n + m;//如果n和m的值非常大,容易超出int范围。
m = n - m;
n = n - m;
3,相似运算符的区别
a, &和&&
& : 只要两边的boolean表达式结果,有一个为false。那么结果就是false。
&&: 只有两边都为true,结果为true。
&:无论左边是true是false。右边都运算。
&&:当左边为false时,右边不运算。
b,|和||
| : 两边只要有一个为true,结果为true。
||:只有两边都有false,结果为false。
|:两边都参与运算。
||:当左边为true。右边不运算。
4.toBinaryString()和toHexString()方法
toBinaryString 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
System.out.println(Integer.toBinaryString(60)); 打印结果:111100
toHexString以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。
System.out.println(Integer.toHexString(60)); 打印结果:3c
5,对整型常量所对应二进制位的运算
int num = 26;
//获取26的最低4位,通过&15;
int n1 = num & 15;
System.out.println(n1>9?(char)(n1-10+'A'):n1); //out:65
//要获取下一组四位,将60右移4位。
int temp = num >>> 4;
//对temp的值进行最低四位的获取。
int n2 = temp & 15;
System.out.println(n2>9?(char)(n2-10+'A'):n2); //out:1
/*
0-9 'A' 'B' 'C' 'D' 'E' 'F'
ASCII值: 65 66 67 68 69 70
字符型常量:10 11 12 13 14 15
12 - 10 = 2 + 'A' = (char)67;
*/
6,Switch语句的用法
int a=4,b =2;
char ch = '+';
switch(ch)
{
case '-':
System.out.println(a-b);
break;
case '+':
System.out.println(a+b);
break;
case '*':
System.out.println(a*b);
break;
case '/':
System.out.println(a/b);
break;
default:
System.out.println("feifa");
}
注:
if和switch语句很像。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
7,Java中的基本数据类型:
1)四种整数类型(byte、short、int、long):
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,很少用,-32768 ~ 32767 int:32 位、最常用,-2^31-1~2^31 (21 亿)
long:64 位、次常用
注意事项: int i=5;
// 5 叫直接量(或字面量)即直接写出的常数。 整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。
小于 32 位数的变量,都按 int 结果计算。强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾
注意事项:二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
尾数: . 1010100010 指数:1010 基数:2
浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;
double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X
float 的精度没有 long 高,有效位数(尾数)短。
float 的范围大于 long 指数可以很大。
浮点数是不精确的,不能对浮点数进行精确比较。
3)一种字符类型(char):
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。
注意事项:不能为 0个字符。
转义字符:\n 换行 \r 回车 \t Tab 字符 \" 双引号 \\ 表示一个\
两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):true 真 和 false 假。
5)类型转换: char--> 自动转换:byte-->short-->int-->long-->float-->double
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。
6)记忆:
8位:Byte(字节型)
16位:short(短整型)、char(字符型)
32位:int(整型)、float(单精度型/浮点型)
64位:long(长整型)、double(双精度型)
最后一个:boolean(布尔类型)
以上为此篇文章全部内容,感谢你的阅读,希望对你有所帮助。