java之学习记录 1 - 1 - 移位运算符与位运算符

/*
* 实现移位运算符的使用
* */
public class MoveBitTest{

    public static void main(String[] args){

        // 声明一个byte类型的变量并初始化
        byte b = 13;
        System.out.println("b = " + b);

        // 13的二进制是:0000 1101 => 左移一位的结果是:0001 1010=>换算为十进制整数是:26
        byte b1 = (byte)(b << 1);//向左移一个二进制位 自动提升为32位 int类型
        System.out.println("b1 = " + b1);
        System.out.println(b << 1); // 26 左移一位相当于当前整数的数值*2
        System.out.println(b << 2); // 52 左移一位相当于当前整数的数值*4

        // 13的进制是 : 0000 1101 => 右移一位的结果是: ... 0000 0110 => 换算为十进制整数是: 6
        System.out.println(b >> 1); // 6 右移一位相当于当前整数的数值/2
        System.out.println(b >> 2); // 3 右移一位相当于当前整数的数值/4
        // 逻辑右移 对于非负数来说  逻辑右移和右移的效果一样
        System.out.println(b >>> 2); // 3

        /*
        * TODO 实现位运算符的使用  &
        * */
        // 声明两个byte类型的变量并初始化
        byte bb = 11;
        byte bb1 = 13;

        System.out.println("bb =" + bb);
        System.out.println("bb1 =" + bb1);

        // bb的二进制为: 0000 1011  bb1的二进制为 : 0000 1101
        System.out.println(bb & bb1); // 同1为1 一0为0 按位与二进制为:0000 1001 => 转为十进制 9
        System.out.println(bb | bb1); // 一1为1 同0为0 按位或二进制为:0000 1111 => 转为十进制 15
        System.out.println(bb ^ bb1); // 按位异或 同0 异1 按位或二进制为:0000 0110 => 转为十进制 6
        System.out.println( ~ bb);    // 按位取反 同0 异1 按位或二进制为:1111 0100 => 转为十进制 6
        // 二进制1111 0100转为十进制 => 先减1:1111 0011 =>按位取反:0000 1100 =>转为十进制:12 => 添加负号 -12

    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值