二进制(Java 版)

操作效果(十进制)描述备注
左移✖️2在末尾添加一位 0⚠️有溢出风险
右移将数字除以 2 并求整数商的操作去除末尾的那一位 0
操作符号说明
左移<<
逻辑右移>>>逻辑右移 1 位,左边补 0 即可
算术右移>>保持符号位不变,除符号位之外的右移一位并补符号位 1。补的 1 仍然在符号位之后

举例

二进制十进制操作结果(二进制)结果(十进制)
11010153左移一位1101010106
11010153右移一位1101026
   /**
     * 向左移位
     * @param num 被移位的十进制数
     * @param m 向左移动位数
     * @return 移位后的十进制数
     */
    public static int leftShift(int num, int m) {
        return num << m;
    }

    /**
     * 向右移位
     * @param num 被移位的十进制数
     * @param m 向右移动位数
     * @return 移位后的十进制数
     */
    public static int rightShift(int num, int m) {
        return num >>> m;
    }

补码

  • 出现原因:CPU 的运算器只实现了加法器,而没有实现减法器
  • 有符号的二进制数,负数用补码标识

计算规则

正数
  • 原码 = 反码 = 补码
负数
  • 反码 = 符号位不变,其他位取反
  • 补码 = 反码 + 1

或、与、异或

逻辑值

二进制含义
1
0

位的“或”

  • 定义: 参与操作的位中只要有一个位是 1,那么最终结果就是 1,也就是“真”。

位的“与”

  • 定义: 参与操作的位中必须全都是 1,那么最终结果才是 1(真),否则就为 0(假)。

位的“异或”

  • 定义: 具有排异性,也就是说如果参与操作的位相同,那么最终结果就为 0(假),否则为 1(真)。
  • 可以判断两个变量是否相等

Java 符号说明

操作符含义
|
&
^异或
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值