用Java二进制运算、位移运算、逻辑运算

一、对于有符号数据
有符号数:首位(最高位)数字(1表示负数,0表示正数)
源码
反码
补码

正数:源码,反码,补码都相同
零:源码,反码,补码都是0
负数:
    源码:
    反码:=源码符号位不边,其他位取反 (0->1,1->0)
    补码:反码+1

计算机运行时,都是以补码的方式运算的
二、关系运算符
>,<,
>=,<=,
==,!=
判断的结果为Boolean类型
三、逻辑运算符,以及位移运算

与&、或|、异或^、取反~

下面是用Java写的代码

package com.demo;

import java.sql.SQLOutput;

/**
 * 位移运算 右移给最高位加0,然后删除最右边多余的0
 * 位移运算 左移给最高位减0,然后给最右边空出的位置补0
 */
public class CalculationTest {
    public static void main(String[] args) {
//        System.out.println(32>>1);//右移1位相当32缩小2的1次方倍
//        System.out.println(32>>2);//右移2位相当32缩小2的2次方倍
//        System.out.println(32<<1);//左移1位相当32的扩大1次方倍
//        System.out.println(32<<2);//左移2位相当32的扩大2次方倍
        ConvertBinary(3);
        and(5, 12);//逻辑位与运算  1&1=1,1&0=0,0&0=0,同为1才是1
        or(5, 12);//逻辑位或运算  1|1=1,1|0=1,0|0=0,有1就为1,同时为0才是0
        xor(7, 11);//逻辑位异或运算 1^1=0,1^0=1,0^1=1,0^0=0 同为0,异为1


    }

    /**
     * Convert any number to binary
     */
    public static void ConvertBinary(int anyNum) {
        System.out.println("十进制数字" + anyNum + "换算成二进制:" + Integer.toBinaryString(anyNum));
        System.out.println("把" + anyNum + "右移1位得到十进制:" + (anyNum >> 1) + "二进制结果:" + Integer.toBinaryString(anyNum >> 1));
        System.out.println("把" + anyNum + "左移1位得到十进制:" + (anyNum << 1) + "二进制结果:" + Integer.toBinaryString(anyNum << 1));
    }

    public static void and(int firtNum, int secondNum) {
        int a = firtNum;
        System.out.println(a + "二进制结果:" + Integer.toBinaryString(a));
        int b = secondNum;
        System.out.println(b + "二进制结果:" + Integer.toBinaryString(b));
        int c = a & b;
        System.out.println(a + "&" + b + "=" + c + "再转成二进制结果为:" + Integer.toBinaryString(c));
    }

    public static void or(int firtNum, int secondNum) {
        int a = firtNum;
        System.out.println(a + "二进制结果:" + Integer.toBinaryString(a));
        int b = secondNum;
        System.out.println(b + "二进制结果:" + Integer.toBinaryString(b));
        int c = a | b;
        System.out.println(a + "|" + b + "=" + c + "再转成二进制结果为:" + Integer.toBinaryString(c));

    }

    public static void xor(int firtNum, int secondNum) {
        int a = firtNum;
        System.out.println(a + "二进制结果:" + Integer.toBinaryString(a));
        int b = secondNum;
        System.out.println(b + "二进制结果:" + Integer.toBinaryString(b));
        int c = a ^ b;
        System.out.println(a + "^" + b + "=" + c + "再转成二进制结果为:" + Integer.toBinaryString(c));
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值