位运算

1、计算机所有的位操作都是针对 操作数的补码进行 操作 得到的结果也是补码。
2、对正数而言 原码=反码=补码 对负数而言:补码=反码+1 反码=源码除符号位(1)外取反
3、为什么这么设定? 计算机为了保证相反数二进制存储相加结果为0
如果没有补码: 4 二进制:0000 0100 -4二进制:1000 0100 二者直接相加 1000 1000 结果是 -8
如果使用补码运算: 4 二进制:0000 0100 -4二进制:1000 0100 补码为 1111 1100 二者补码直接相加 0000 0000 结果是 0 从而方便了计算机计算

   static void bitCaculate(){
        
        
        System.out.println(~4);// 0000 0100  全部取反 1111 1011   是 -5 的补码  结果是 -5
        System.out.println(~-5);// 1000 0101  补码为 1111 1011 取反 0000 0100   是 -5 的补码  结果是 4
        //
        int n=100; //0000 1101 0000 0110  0000 1111   1111
        System.out.println("a".hashCode());
        System.out.println(new BigInteger("97",10).toString(2));
        System.out.println(tableSizeFor(100));
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

catch that elf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值