您的位置:首页 > 编程语言 > Java开发

java5:运算

2015-09-26 22:52 417 查看
条件运算符(三目运算符):
boolean表达式?表达式!:表达式2

先计算boolean表达式的值,如果是true ,则整个表达式的值为表达式1的值,如果是false则整个表达式的值为表达式2的值

package day05;
public class Demo01 {
public static void main(String[] args) {
int n = 1;
int m = 2;
char c = n > m ? 'T' : 'F';
System.out.println(c);
}
}
package day05;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner con = new Scanner(System.in);
System.out.print("输入总行数:");
int rows = con.nextInt();
con.close();
int size = 5;
int pages = rows%size==0 ? rows/size :rows/size+1;
System.out.println("共"+pages+"页");
}
}


赋值运算符:
=

赋值表达式的值是赋值的结果

a = (b = 1) 将 b=1表达式结果赋值给a
a = 1

a = a + 2; ==>a+=2 复合赋值运算

package day05;
public class Demo03 {
public static void main(String[] args) {
int num = 321;
int last;
int reverse_num;
last = num % 10;
System.out.println(last);
System.out.println(reverse_num);
reverse_num = last *100;
num/=10;
last = num % 10;
System.out.println(last);
reverse_num =reverse_num + last *10;
System.out.println(reverse_num);
num/=10;
last = num % 10;
reverse_num =reverse_num + last *1;
System.out.println(last);
System.out.println(reverse_num);
}
}


+ 是java 中唯一一个重载运算符,数学加法和字符串连接
重载:名称一样不通的功能
package day05;
public class Demo04 {
public static void main(String[] args) {
System.out.println(1+1); //数学1+1 =2
System.out.println(1+'1');//1+ 字符 1 字符 1 = 49  ==》 1+49 =50
System.out.println(1+"1");//1 + 字符串1  11
System.out.println(1+1+'1'+"1"); //1+1+49+字符串1 511
}
}


移位运算符

类似 10进制中移动小数点

<< 左移 (数学)
原数*2

因为 java的数据在内存中都是二进制的

>> 右移 高位 整数 补零 负数 补一 (数学)

原数/2

~~~~~~~~~~~~~~~~~~
>>>逻辑右移 高位补零 (逻辑)

package day05;

public class Demo01 {

public static void main(String[] args) {
int n = 0xfffffffc;
int m = n<<4;
System.out.println(Integer.toBinaryString(n));
System.out.println(Integer.toBinaryString(m));
m = m>>4;
System.out.println(Integer.toBinaryString(m));
m = m>>>16;
System.out.println(Integer.toBinaryString(m));
}
}


位运算符

&与 0 0 是0 0 1是0 1 1 是1
|或 0 0 是0 0 1 是1 1 1是1
^异或 一样0 不一样1
~ 非 0是1 1是0

i & 0xff 消去高位

移位运算 和 位运算一起用 可以 组合数据(消去,截取,拼接)

快速的实现一个整数 * 16 (2的整数倍)

int n = 6;
int y = n<< 4;

本文出自 “浪漫的偷笑” 博客,请务必保留此出处http://lmdtx.blog.51cto.com/6942028/1698488
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: