1.Java语言基础(2)
十八、位运算符的基本用法
A:位运算符有哪些
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
注意事项:位运算是直接对二进制补码进行运算。运算效率高一些
B:案例演示
&,|,^,~,<<(左移) ,>>(右移) ,>>>(无符号右移)的用法
结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0 符号位也包含在内取反(与反码有所区别)
<<:左移 空位补0,被移除的高位丢弃
>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1
>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补
注:^的特点:一个数据被另一个数据位异或两次,该数本身不变。
自己位异或自己是0 8^8 结果是0
<< : 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
>> : 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5
正数的按位反:+9
原码:00001001
反码:00001001
补码:00001001
按位取反 1 1110110 补码
再推回原码
1 1110110 补码
- 1
-----------------------------
1 1110101 反码
取反
----------------------
1 0001010 原码
最后结果是: -10
-9的按位取反:
原码:1 0001001
反码:1 1110110
补码:1 1110111
负数的补码按位取反:0 0001000 的到正数 正数的原反补一样
最后结果是:8
十九、三元运算符的基本用法
A:三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
B:三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;
二十、键盘录入
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
package org.westos.java;
import java.util.Scanner;
public class MyDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字");
int x = sc.nextInt();
System.out.println("请输入第二个数字");
int y = sc.nextInt();
System.out.println("请输入第三个数字");
int z = sc.nextInt();
int t;
int max;
if(x>y){
t=x;
}else{
t=y;
}
if(t>z){
max=t;
}else{
max=z;
}
System.out.println(max);
}
}