java中的操作符之三

来源:互联网 发布:淘宝兼职外宣说说大全 编辑:程序博客网 时间:2024/06/05 22:40

1.直接常量

import java.util.*;class tank{static int value;static boolean equals(tank a){return value==a.value;}}public class FirstStep{public static void main(String[] args){Integer i=new Integer(23);System.out.println(Integer.toBinaryString(i));/*采用二进制的方式输出*/int j=0x2f;//十六进制直接常量的定义System.out.println(Integer.toBinaryString(j));int k=012;//八进制的直接常量定义System.out.println(Integer.toBinaryString(k));char l=012;System.out.println(Integer.toBinaryString(l));} }
运行结果:
10111
101111
1010
1010
2.按位操作符

按位操作符包含有三种,分别是按位与,或以及按位异或操作

按位与&:按照位数比较同时为1的时候,输出为1,其他情况全都为0

按位或:同时为0时,输出为0,其他情况输出为1

/*前面的两种都是二元操作符*/

按位异或:相同为0,相异为1

//一元操作符

程序代码段如下:

import java.util.*;class tank{static int value;static boolean equals(tank a){return value==a.value;}}public class FirstStep{public static void main(String[] args){Integer i=new Integer(23);System.out.println("i="+Integer.toBinaryString(i));/*采用二进制的方式输出*/int j=22;System.out.println("j="+Integer.toBinaryString(j));int k=j&i;System.out.println("i&j="+Integer.toBinaryString(k));k=j|i;System.out.println("i|j="+Integer.toBinaryString(k));k=~i;System.out.println("~i="+k);} }
运行结果:
j=10110
i&j=10110
i|j=10111
~i=-24

3.移位操作符

<<向左方移位,低位补0;

>>向右方移位,高位补1;

>>>向右端移位,高位补0;

程序代码如下:

import java.util.*;class tank{static int value;static boolean equals(tank a){return value==a.value;}}public class FirstStep{public static void main(String[] args){int i=-1;System.out.println("i="+Integer.toBinaryString(i));i<<=10;System.out.println("i<<10="+Integer.toBinaryString(i));i>>=10;System.out.println("i>>10="+Integer.toBinaryString(i));i>>>=10;System.out.println("i>>>10="+Integer.toBinaryString(i));} }
运行结果如下:

i=11111111111111111111111111111111
i<<10=11111111111111111111110000000000
i>>10=11111111111111111111111111111111
i>>>10=1111111111111111111111
4.if-else(不是条件操作符,它本身是可以产生一个值的)

简单而言就是一个条件判断赋值语句,这和C语言,C++是相同的

i?b:c;

若是i为真,那么i=b;否则i=c;

5.字符串操作符+和+=

字符串连接符号不同于C语言,不局限于字符串,字符串和其他类型的变量之间也是可以连接的

程序段如下:
import java.util.*;
class tank
{
static int value;
static boolean equals(tank a)
{
return value==a.value;
}
}
public class FirstStep{
public static void main(String[] args){
int i=1,j=2,k=3;
String a="i+j+k=";
System.out.println(a+i+j+k);
System.out.println(a+(i+j+k));

}

运行 结果如下:

i+j+k=123
i+j+k=6

在第一个输出中,所有的整型数据都是被当做字符串直接输出 的

而在第二个输出中,整型数据在括号内先进行计算得到6,再转化为符号‘6’输出的;

5.类型转换操作符

这个比较简单,使用方法:i=(int)k;

括号内为需要强制转化成的类型;

稍微需要注意的是向上转化,其实也很简单,假如i是整型int,k是浮点型float,那么i+j就是浮点型,因为浮点型比整形要大,就是一个向上取类型的过程。

6、截尾和舍入

一般情况下,比如float向int型转化时,小数点后的数字会直接被忽略掉,而不是四舍五入,如何做到舍入操作的,java中需要调用一个方法,就是Math类中的round();

程序段如下:

import java.util.*;class tank{static int value;static boolean equals(tank a){return value==a.value;}}public class FirstStep{public static void main(String[] args){float a = 0.3f,b=0.7f;System.out.println("(int)a="+(int)a+"\n"+"(int)b="+(int)b);System.out.println("Math.round(a)="+Math.round(a)+"\n"+"Math.round(b)="+Math.round(b));} }
运行结果如下:
(int)a=0
(int)b=0
Math.round(a)=0
Math.round(b)=1

0 0
原创粉丝点击