Java学习第三日:创建运算符

本文详细介绍了Java中的各种运算符,包括算术运算符(加、减、乘、除、取余)、比较运算符(大于、小于、等于等)、逻辑运算符(与、或、非)、自加和自减运算符以及赋值运算符。此外,还讲解了三目运算符和位运算符的概念和用法,帮助读者深入理解Java语言的基础操作。
摘要由CSDN通过智能技术生成

java常见运算符

计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。

算术运算符

算术运算符主要用于数学表达式中,和数学中的运算符作用一样,以下便是算术运算符:

  1. + ,即加法运算;
  2. 减法运算;
  3. *,乘法运算;
  4. / 除法运算,注意是整除,结果为整数
  5. % 除法后取余数;
     System.out.println("两数之和:"+(num1+num2));{  //  + 运算符
	{System.out.println("两数之差:"+(num1-num2));} //  - 运算符 
	{System.out.println("两数之商:"+(num1/num2));} //  / 运算符
	{System.out.println("两数之积:"+(num1*num2));} //  * 运算符
	{System.out.println("两数之余:"+(num1%num2));} //  % 运算符
	}
	
  1. 常(恒)量 :在程序运行时,不能修改它的值的量;
    在java中,声明常量使用的关键字。
// 定义常量
		final double PI = 3.14;
		System.out.println(PI);
		// 注意:如下代码会报错!!!,因为常量不可以被修改
		// PI = 3.566666;
		System.out.println(PI);

比较运算符

用于比较两个量的大小;

  1. > ,大于;
  2. < ,小于;
  3. >= ,大于等于;
  4. <= ,小于等于;
  5. != ,不等于;
  6. == ,等于;
class Test01 {
	public static void main(String[] args) {
		int a = 10;
		int b = 3;
		int c = 10;
		System.out.println(a > b) ;  // > ,大于
		System.out.println(a < b) ; // < ,小于
		System.out.println(a >= b) ; // >= ,大于等于
		System.out.println(a <= b) ; // <= ,小于等于
		System.out.println(a != b) ; // != ,不等于
		System.out.println(a != c) ;
		System.out.println(a == b) ;// == ,等于
		System.out.println(a == c) ;
	}
}

代码结果代码结果

逻辑运算符

主要用于连接多个条件的关联关系。

  1. &&& 与运算符,表示的是并且关系,全部为真则为真,否则为假
  2. ||| 或运算符,表示或者的关系,只要一者为真则为真,全部为假才为假
  3. !,非运算符,否定,取反
  4. &&,表示短路(短路原则)与|| 表示短路非为了效果更高,在编程建议使用短路与和短路或
int age = 12;
		boolean gender = false;
if (age >= 18 || !gender) {
			System.out.println("恭喜你,成年了"); //短路或和取反运算符
		}
if (age >= 18 && gender) {
			System.out.println("恭喜你,成年了"); //短路与运算符
		}

运行结果
在这里插入图片描述

自加和自减运算符

自增自减运算符存在于C/C++/C#/Java/等高级语言中,它的作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。——百度百科

  1. ++a 前加加,值加1
  2. a++ 后加加,值加1
  3. - -a,前减减,值减一
  4. a- -,后减减,值减一
    前加加(减减)和后加加(减减)优先级别不同引起的,前加加(减减)优先级别非常高,仅次于括号后加加(减减)的优先级别非常非常低,甚至比赋值符低。所以先赋值后加加,故值先不变

用jshell简单表示,这里先 a赋值给b,之后a才加一,所以b=10,而a的值会加一
在这里插入图片描述

赋值运算符

  1. = 将等号右侧的值赋给左侧的变量
  2. += 加赋值
  3. ** - =** 减赋值
  4. *= 乘赋值
  5. /= 除赋值
  6. %= 求余赋值
  7. &= 按位与赋值
  8. | = 按位或赋值
  9. ^= 按位异或赋值
  10. <<= 左移位赋值
  11. “>>=” 右移位赋值

以下图片来自于网络
在这里插入图片描述

用加赋值求0到一百的和

class Test06 {
	public static void main(String[] args) {
		int sum = 0;
	
		for (int i = 1; i <= 100; i++) {
			sum += i; //加赋值
		}
		System.out.println("0~100的和是:"+ sum);
	}
}

求得结果
在这里插入图片描述

三目运算符

三目运算符,又称条件运算符,相当于 if,对于条件表达式b ? x : y先计算条件b,然后进行判断。如果b的值为,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,==从右向左分组计算。==例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行 ——选自网络

位运算符

计算机底层本质是二进制(半导体)运算。
二进制:人们常常使用十进制来计数,如:0 1 2 3 4 5 6 7 8 9 逢10进1;而在二进制中:
个位数只有2个,0 1 逢二进一。
八进制:逢八进一。
十六进制:0~9 后面是9之后的数字的表示—>ABCDEF (10,11,12,13,14,15)
在计算时,数字会换算成2进制来计算,如下图,但是这样会分不清结果的正负性质。故我们采用数字的补码来进行运算。

c + d =?
在这里插入图片描述
计算机底层本质上来说,是以补码运行的!!

源码:数值的二进制状态码
反码:符号位不变,其余各位取反,得到的就是反码
补码:反码+1,就是补码
正数的源码、反码、补码一致,也就是正数

正确算法
因为是字节类型声明,(会产生溢出现象)所以最后变成八位!!!看最高位数字,若是1(即负数)注意转换成源码!!!0就不用换
在这里插入图片描述

对于一个字节
无符号的时候:
1111 1111 255 最大值
0000 0000 0 最小值 0~255 256个值
有符号的时候是 -128 ~127 256个值

  1. & 与运算 , a & b; // 都为真,则为真

0000 1010
0000 1011 &
---------------
0000 1010 10
看数值 比如 &运算 上面为1 下面为1 两者为1 则为真 则结果为1
通过补码异或 来交换值

  1. | // 或运算符 ,A | b 一真为真

0000 1010
0000 1011
-----------
0000 1011 11
在这里插入图片描述

  1. ^ // 异或运算 A ^ b 相反为真

0000 1010
0000 1011 ^
---------
0000 0001 1

  1. ~ // 按位取反

  2. << 左移运算符

其功能把,左边的运算数的各二进位全部左移若干位,由,右边的数指定移动的位数,高位丢弃,低位补0。
例: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
在这里插入图片描述

  1. >> 有符号右移运算
  2. >>> 无符号右移运算

右移运算符,其功能是把,左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
有符号时正数 ,最高位补0,而为负数时,符号位为1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值