java5:运算


条件运算符(三目运算符):

    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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值