3(异或,左移右移,交换2个变量)

1 java中的异或和位运算符

^ 异或表示相同为false,不同为true;例如 true ^ false为true;true^true为false。

&&  和 &  他们所得到的结果相同,但是前者表示短路与,即如果左边为false则右边就不再执行,同理,||  与 |  表示的意思相同

位运算符将所有的数都看作二进制计算,此时8421口诀就很方便了。

上述位运算符都很简单,但是按位取反有一定难度,这里解释一下^6如何求?

首先6的二进制,00000000        00000000     00000000   00000110

取反                    11111111          11111111       11111111    11111001(这里得到的是补码)

取反后我们发现这个数很大啊!!其实之前提到过,计算机计算都是按照补码进行计算的,所以我们在这里需要将补码还原回去,补码等于反码+1,所以反码等于补码-1

反码                    11111111              11111111      11111111       11111000

源码                    10000000             00000000      00000000   00000111

等于-7

一个数被另一个数据异或2次,这个数本身不变,例如System.out.println(5 ^ 10 ^ 10);结果还是5

面试题:交换2个变量

2 java中的左移和右移和无符号右移

注意一下,如果给的是负数,就要先求它的补码,再进行计算,得到的结果依然是补码,需要转换为原码,正数的原反补相同,补码——》反码:补码-1;反码——》原码:符号位不变,其余取反即可。

作用:

如果直接计算2 * 8,计算机会将2转化为2进制,8转换为2进制,但是我们知道左移几位,就等于当前数字乘2的几次方,所以2*8  等于2*2的三次方,就等于2向左移动3位。

3 java中的键盘输入

(1)导包

import  java.util.Scanner;

(2)创建Scanner对象

Scanner sc = new Scanner(System.in);

(3)输入数据

int x = sc.nextInt();

4 java的程序运行流程结构

有3种,顺序,选择(if,switch),循环(for,while)

这里需注意一点,当if后面不加{}时,if默认控制离他最近的一条语句。

那为什么这里int  x = 10;会出错呢?因为int x = 10;是2条语句,很重要,自己之前从来没有仔细思考过,所以if就报错了。

三元运算符和if语句作用是一样的,完全可以替代,以后注意多采用三元运算符实现代码,只有一种情况不能用三元运算符,就是当if语句中出现输出语句时,三元运算符不可以替代,因为三元运算符不能输出语句,但是我们用字符串代替。

关于switch语句,注意一下,switch可以接受的数据类型不是很多,首先他可以接受可以转化为int的数据类型,有byte,short,char,int。但是long不可以,其次它还可以接受char类型,还有枚举类型,除此之外,在JDK1.7之后,增加了一种类型就是String类型。

switch在运用的时候有2个地方新手经常犯错误,其一,每个case后面需要加上break;语句。其二,应该加上default:语句,加上的作用在于提示错误值。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值