第一章 运算符

第一章 运算符



第一章 运算符

1.1算术运算符

+相加
-相减
*相乘
%取余
/相除

1.2逻辑运算符

or或 ,或者
and与 ,并且
not非,取反

1.3关系运算符

>大于
<小于
>=大余等于
<=小于等于
==等于
!=不等于

结果是布尔值

1.4赋值运算符

=将等号右侧的结果赋值给左侧
+=a += 10 <===> a = a + 10
-=a -= 10 <===> a = a - 10
*=a *= 10 <===> a = a * 10
/=a /= 10 <===> a = a / 10
**=a **= 10 <===> a = a ** 10
//=a //= 10 <===> a = a // 10
%=a %= 10 <===> a = a % 10
a++如a=10 ,a++=10
++a如a=10,++a=10
a–如a=10 ,a–=10
–a如a=10,–a=10

a是会变的

python中,没有自加和自减。

1.5三目运算符

变量 = 表达式 ?结果1:结果2;

	   int a = 1;
       a = a == 1 ? 2:3;
       System.out.println(a);
       int b = 2;
       b = b == 1 ? 2:3;
       System.out.println(b);
if (a == 1){
	System.out.println(a);
} else {
	System.out.println(1);
}

1.6位运算符

位(bit):它是计算机中的最小单位

&与运算, 全1为1,有0则0
~取反,1变0,0变1
I或运算,有1为1,全0为0
^异或运算,相同为假,不同为真
<<左移运算,数值value向左移动num位,左边二进制位丢弃,右边补0;若1被移位到最左侧,则变成负数;左移时舍弃位不包含1,则左移一次,相当于乘2。
>>1)数值value向右移动num位,正数左补0,负数左补1,右边舍弃。(即保留符号位)2)右移一次,相当于除以2,并舍弃余数。3)无符号右移>>>:左边位用0补充,右边丢弃。

符号位(最高位):0为正,1为负
计算机中都是以补码运行,而要读要变回原码读取

使特定数位翻转(与1异或)、保留原值(与0异或)、交换两个变量的值。 交换两个变量的值:

        借助第三个变量来实现。C=A;A=B;B=C;
        利用加减法实现两个变量的交换。A=A+B;B=A-B;A=A-B;
        用位异或运算来实现,效率最高。A=A^B;B=A^B;A=A^B;(一个数异或本身等于0)

1.7进制的转换

十进制转换成其他进制

  Integer.toHexString(int i);//十六进制

  Integer.toOctalString(int i);//八进制

  Integer.toBinaryString(int i);//二进制

其他进制转化为十进制

  Integer.valueOf("fff0",16).toString();

  Integer.valueOf("123",8).toString();

  Integer.valueOf("0101",2).toString();

1.8所属运算符

判断一个值是否存在于某个复合数据类型(容器)
in或者not in

1.9源码,反码,补码

负数以其正值的补码形式表示

	原码:一个整数按照绝对值大小转换成的二进制数,符号位取1,称为原码。
	反码:符号位不变,将二进制按位取反,所得的新二进制数称为原二进制数的反码。
	补码:反码加1称为补码。

原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

比如 00000000 00000000 00000000 00000101 是 5的 原码。

10000000 00000000 00000000 00000101 是 -5的 原码。

反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

比如:正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101

负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。

称:11111111 11111111 11111111 11111010 是 10000000 00000000 00000000 00000101 的反码。

反码是相互的,所以也可称:

10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。

3.补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

比如:10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

计算机显示的是补码,用补码计算
但计算机最后还是用原码读数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值