运算符

五、运算符

1.运算符分类

算数运算符、关系运算符、赋值运算符、逻辑运算符、条件运算符、位运算符

1.1算术运算符
运算符含义
+
-
*
/
%取余,求模
++自增,对原值加1
自减,对原值减1
  • 前缀自增自减

    先进行自增或自减,然后在执行表达式

  • 后缀自增自减

    先执行表达式,然后再进行自增或自减

         /*
		 * 基本用法
		 */
		int a = 5;
		int b = 2;
		// int sum=a+b;
		// System.out.println("a+b="+sum);
		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("--------------------------");
		/*
		 * 自增自减
		 */
		int c = 6;
		// c++;
		// ++c;
		// c--;
		--c;
		System.out.println(c);
		/*
		 * 前缀自增自减和后缀自增自减的区别
		 */
		int x = 3;
		// System.out.println(++x); //先加1,在输出
		System.out.println(x++);// 先输出,在加1
		int m = 5;
		// int n=m--;
		int n = --m;
		System.out.println(n);```
	// 思考?
	int i = 3;
	int j = (i++) + (++i);// 3+5
	System.out.println(j);

	/*
	 * 将字符串与数值相加时会进行拼接
	 */
	System.out.println("hello" + 22 + 11);// hello2211
	System.out.println("hello" + (22 + 11));// hello33
	int d = 3, e = 8;
	System.out.println("" + d + e);// 借助空字符串将数字拼接
1.2关系运算符

也称为比较运算符,用来做比较运算,比较结果是boolean类型

运算符含义
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于
    	int a = 5, b = 8;
		System.out.println(a > b);//结果为boolean值
		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(1<5<8);//不支持此写法
		System.out.println('x' > 'm');// 可以用于字符的比较,比较的是字符的ASCII码
1.3赋值运
运算符含义
=简单赋值
+=加法赋值
-=减法赋值
*=乘法赋值
/=除法赋值
%=求模赋值
         int a = 5;
		// a+=2;//等价于a=a+2
		// a-=2;//等价于a=a-2
		// a*=2;//等价于a=a*2
		// a/=2;//等价于a=a/2
		a %= 2;// 等价于a=a%2
		System.out.println(a);
		// int b=c=6;//不支持此写法
1.4逻辑运算符
运算符含义
&&逻辑与,并且
||逻辑或,或者
!逻辑非,取反
         boolean a = true, b = false;
		System.out.println(a && b);// 两个都是true,则为true,否则为false
		System.out.println(a || b);// 只要有一个为true,则为true,否则为false
		System.out.println(!b);// 如果为true,则为false,如果为false则为true

		System.out.println(5 > 2 && 8 <= 6);
		System.out.println(16 > (4 + 2) * 3);
		System.out.println(!(5 > 8));
		/*
        * 逻辑运算是一种短路运算 
		 *对于&&如果左边为false,则不再执行右边代码 
		 *对于||如果左边为true,则不再执行右边代码
		 */
		System.out.println(false && (5 + 2) * 3 > 15);
		// System.out.println(5/0);//除数不能为0
		System.out.println(false && 5 / 0 > 3);// 不在执行5/0
1.5条件运算符

也称为三目运算符

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

当条件为true时执行表达式1,当条件为false时执行表达式2

         int a = 5, b = 9;
		System.out.println(a * 2 > b ? "yes" : "no");
		int c = a > b ? a + b : a - b;
		System.out.println(c);
1.6运算符的优先级

从高到低的顺序:

  1. 小括号()
  2. 一元运算:自增++、自减–、非!
  3. 乘*、除/、取余%
  4. 加+、减-
  5. 关系运算:> 、<、 >=、 <=
  6. 相等运算:==、!=
  7. 逻辑与:&&
  8. 逻辑或:||
  9. 赋值运算:=、+=等

注:当运算符较多时,建议使用小括号控制运算的顺序

2.进制
2.1简介

进制就是进位计数制,是一种带进位的计数方法,即逢几进一

生活中的进制:十进制、七进制、十二进制、二十四进制、六十进制、二进制、十六进制

2.2常用进制
进制种类单词范围引导符号示例
十进制decimal由0-9组成,共十个,逢十进一无,Java整数中默认十进制10
二进制binary由0-1组成,共两个,逢二进一0b或0B0b10
八进制octonary由0-7组成,共八个,逢八进一0010
十六进制hex由0-9,a-f或A-F组成,共16个,逢十六进一0x或0X0x10
2.3进制转换

十进制转换为其他进制:除基取余

如23——>0b10111 ——>0x17

其他进制转换为十进制:按权相加

如0b10111——>1×20+1×21+1×22+0×23+1×2^4=23

0x12——>2×160+1×161=18

2.4二进制

计算机底层使用的是二进制,所有数据在计算机底层都是以二进制形式保存的

二进制数分为两种:

  • 无符号二进制,只能存储正整数

  • 有符号二进制,可以存储正数和负数,最高位为符号位,0表示正数,1表示负数

    正数5表示为00000000 00000000 00000000 00000101

    负数5表示为10000000 00000000 00000000 00000101

    二进制中的原码、补码、反码

    • 原码

      原始二进制值

    • 反码

      正数:反码和原码相同,如5的反码 00000000 00000000 00000000 00000101

      负数:符号位不变,其余2各位取反,如-5的反码11111111 11111111 11111111 11111010

    • 补码

      正数:补码和原码相同,如5的补码 00000000 00000000 00000000 00000101

      补码

      正数:补码和原码相同,如5的补码 00000000 00000000 00000000 00000101

      负数:反码+1,如-5的补码11111111 11111111 11111111 11111011

    总结:

    • 对于正数,原码、反码、补码都相同
    • 对于负数有所不同

    计算机内部是使用补码来存储和表示值的

2.5位运算符

主要是针对二进制的位进行运算,需要将值转换为二进制后进行按位运算

运算符含义
&按位与
|按位或
~按位非
^异或
>>右移
<<左移
>>>无符号右移(了解)

位运算符和逻辑运算符的区别:

  • 逻辑运算符是针对布尔值进行运算
  • 位运算符是针对二进制的位进行运算
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值