java第一阶段之运算符与进制

ps:内容为本人学习韩顺平老师课程的笔记,全部all总都为个人总结,因此可能会有些口语化和碎碎念。

运算符

算术运算符

对数值类型的变量进行运算

在这里插入图片描述

介绍

  • /

    10/4=2 因为两者都是整数

    要为double可以写double d=10/4 2.0(相当于把2变成浮点数) 或者10.0/4 =2.5 自动类型转换

  • %(取模,取余)
    本质:a%b=a-a/b*b

在这里插入图片描述

  • ++

1.独立使用 i++;++i;就是自增 相当于i=i+1;

2.作为表达式使用

前++:++i先自增再赋值

后++:i++先赋值再自增 (可以看等号离得近的是变量就是先赋值)

在这里插入图片描述

练习:

在这里插入图片描述

关系(比较)运算符

结果都是boolean型 要么true要么false,一般应在if结构中或循环结构的条件中

在这里插入图片描述

注意:“==”与“=”的区别

逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值。

在这里插入图片描述

  1. 短路与&&,短路或||,取反!
  2. 逻辑与&,逻辑或|,^逻辑异或

&&与&的区别

虽然结果是一样的

&&短路与:如果第一个为false,第二个条件不用看,结果都为false

&逻辑与:不管第一个是不是false,都要判断第二个,所以效率低

在这里插入图片描述

||和|一个道理 变成ture

  • ^逻辑异或 当a和b不同时结果为ture,否则为false
boolean  b = (10>1)^(3<5)//结果为false  因为两边都为ture是一样的

练习

1.在这里插入图片描述

2.在这里插入图片描述

这道题就很坑了 注意有赋值“=”不是==“相等” 所以就是y是ture x为false 两个z都要加

赋值运算符

1.基本赋值 就是一个=

2.复合赋值运算符 += -= *= /= %=

例如a+=b 等于a=a+b;其他同理

  • 赋值运算符左边只能是变量,右边可以是变量、表达式、常量值
  • 复合赋值运算符会进行类型转换

在这里插入图片描述

但是如果写成b=b+2;就是不对的 byte类型再运算的时候会变成int型 而b还是byte类型

三元运算符

条件表达式?表达式1:表达式2

如果条件为真则返回1,否则返回2

在这里插入图片描述
在这里插入图片描述

注意自增是单行 只有自身的情况下 先返回和先赋值一个道理 而这里其实是省略了一个式子

  • 表达式1和2要为可以赋值给接受变量的类型(或可以自动转换)
    在这里插入图片描述
    double不能返回给int(需要强转)
    在这里插入图片描述

  • 三元运算符可以转换if-else语句 就是当if里的条件如果是条件表达式的时候,就可以转化成三目运算符;
    在这里插入图片描述

三目运算符求三个数的最大数
int max1=a>b?a:b;
int max2=max1>c?max1:c;
用一条语句
    int max=(a>b?a:b)>c?(a>b?a:b):c;
但从效率和可读性来看都是第一个分步的比较好

运算符优先级

在这里插入图片描述

只有单目运算符(只需要一个常量运行运算)和赋值运算符是从右往左进行运算的

1… () {} ; , 等

2.单目运算

3.算数运算符

4.位移运算符

5.比较运算符

6.逻辑运算符

7.三元运算符

8.赋值运算符

标识符

规则

凡是自己可以取名的地方都可以叫标识符 变量名 类 方法

在这里插入图片描述

规范(更加专业)

在这里插入图片描述

练习

在这里插入图片描述

关键字和保留字

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

键盘输入语句

在这里插入图片描述

简单文本扫描器 是一个类 类在包下边

所以要1.声明这个包import

import java.util.Scanner;

2.创建Scanner对象

Scanner myScanner = new Scanner(System.in)

new创建一个对象,myScanner 就是Scanner的对象(变量)

3.接收用户的输入,使用Scanner类下的方法next();

System.out.println("请输入名字");
//当程序执行到next方法时,会等待用户输入
String name = myScanner.next();

进制

四种进制的介绍

在这里插入图片描述

在这里插入图片描述

输出的都变成了10进制

进制的转换

二、八、十六 转 十

乘法

十转 二 、八 、十六

除法 余数
转转相除法 欧几里得算法
在这里插入图片描述

二转八、 十六

在这里插入图片描述在这里插入图片描述

八 、十六转二

在这里插入图片描述
在这里插入图片描述

原码反码补码

在这里插入图片描述

位运算

java 中有7个位运算符

在这里插入图片描述
要先转到二进制 然后转到补码进行运算 最后结果再变成原码 (因为补码运算简单 不需要考虑正负) 最后变成十进制

在这里插入图片描述
int 4个字节 32位

在这里插入图片描述

在这里插入图片描述

得到负数的补码 换成源码 就是求补码 符号位不变 其他位取反然后加1;最后转化为10进制;4个字节就是32位

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值