计算机位运算

本文详细介绍了位运算符,包括位与(&), 位或(|), 异或(^)的操作实例。同时,解释了原码、反码和补码在数值表示中的作用,通过具体例子展示了正负数的转换。此外,还探讨了左移(<<)和右移(>>)运算符在数值处理中的应用,如何通过位移实现乘除2的操作。
摘要由CSDN通过智能技术生成

##运算符
一、位运算符
&位与运算符 对应位都是1为1,否则为0
eg. 11001 & 01100 = 01000 任意一个数与1进行位与操作结果为0是偶数,结果为1是奇数

|位或运算,对应位都是0结果为0,否则结果为1
eg. 11001 | 01100 = 11101 --> 1+4+8+16=29

^ 异或运算,对应位相同结果为0,不同结果为1
eg. 11001 ^ 01100 = 10101 -->21

二、原码,反码,补码

原码 表示的是原码

反码 反码为表述负数

补码 存的是补码 效率最高

5 (单字节)

0000 0101 原码

0000 0101 反码

0000 0101 补码

-5

1000 0101 原码

1111 1010 反码 (各位取反)

1111 1011 补码 (反码基上+1)

按位取反(结果是补码) 对应位是0变为1,是1变为0

00011001 -> 11100110 结果补码

11100110 补码

11100101 反码

10011010 原码

10011010 推倒回十进制数 -26

三、
<< 左移运算符 变量<< 常数 将这个变量的二进制数向左移动几个常数位

eg:

num1 << 2 要将25的二进制数向左移动两个常数位,空出来的补0

11001 --> 01100100 -->4 32 64 --> 100

说明 左移几位就相当于当前这个数乘以了几次2

>>右移运算符 变量>> 常数 将这个变量的二进制数向右移动几个常数位

public class Main {
    public static void main(String[] args) {
        int num1=25;
        System.out.println(num1>>1);
        System.out.println(num1>>2);
        System.out.println(num1>>3);
    }
}

与左移同理,只不过右移是除以2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值