Java按位运算符和 移位操作符

按位运算符

1、“与”、“位与”(&)

    按位“与”操作符,如果两个数的二进制,相同位数都是1,则该位结果是1,否则是0.

例子 13&11

    13的二进制是  1101        1                                         1                          01
                                  (都为1相同结果为1)  (不相同结果为0)
    11的二进制是  1011        1                                         0                          11
    
    则结果是      1001    转为十进制是9。

2、“或”、“位或”(|)

    按位“或”操作符,如果两个数的二进制,相同位数有一个是1,则该位结果是1,否则是0

例子 13|11

    13的二进制是  1101        1                                         1                          01
                                  (都为1结果为1)  (有一个为1结果为1)
    11的二进制是  1011        1                                         0                          11

    则结果是      1111  转为十进制是15。

3、“异或、“位异或”(^)

    按位“异或”操作符,如果两个数的二进制,相同位数只有一个是1,则该位结果是1,否则是0

例子 13^11

    13的二进制是  1101        1                                         1                          01
                                  (都为1结果为0)  (有一个为1结果为1)
    11的二进制是  1011        1                                         0                          11

    则结果是      0110  转为十进制是6。

4、“非”、“位非”(~)也称为取反操作符

    按位“非”操作符,属于一元操作符,只对一个操作数进行操作,(其他按位操作符是二元操作符)。按位“非”生成与输入位相反的值,——若输入0,则输出1,若输入1,则输出0。

例子 ~13

    13的二进制是  0000 0000 0000 1101       
    则~13标识为   1111 1111 1111 0010  转为十进制为-14

下面说一下为什么1111 1111 1111 0010表示-14

我们负数转换成二进制的步骤:
1、首先取出这个数的原码的二进制
2、然后再求出反码
3、最后求出补码

求-14用二进制表示

	-14的原码是                1000 0000 0000 1110

    求出反码的是              1111 1111 1111 0001

    求出补码是                1111 1111 1111 0010

Java移位操作符

    移位操作符操作的运算对象也是二进制的“位”。移位操作符只可用来处理整数类型,左移位操作符(<<)能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0),“有符号”右移位操作符(>>)则按照操作符右侧指定的位数将操作符左边的操作数向右移。“有符号”右移位操作符使用“符号扩展”;若符号位正,则在高位插入0;若符号位负。则在高位插入1。
例子 13<<2(相当于13*2^2)
13的二进制是  0000 0000 0000 1101
左移两位         0000 0000 0011 0100 十进制为52
例子 13>>2(相当于13/2^2)
13的二进制是  0000 0000 0000 1101
左移两位         0000 0000 0000 0011 十进制为3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值