二进制运算

二进制补码

二进制补码、加法计算原理详解

精度损失

  • 损失的是高位的数值:

    int类型 256 -> 0000 0001 0000 0000
    byte类型256 -> 0000 0000
    前面的“0000 0001”没有地方存储而丢失,最后变为了0

& “与” 运算

都为1则为1,否则为0

    1111 & 0000 = 0000
    1010 & 1111 = 1010

| “或”运算

存在1为1,全0为0(无进位相加)

    1010 | 0101 = 1111
    1111 | 0000 = 1111
    1010 | 1111 = 1111
    0101 | 0000 = 0101

~ “非”运算

0为1,1为0

 ~1011 = 0100

^ “亦或”运算

相同为0 ,不同为1

    1010 ^ 0101 = 1111
    1111 ^ 0000 = 1111
    1010 ^ 1111 = 0101

<< “左移”运算

符号位保持不变的情况下剩余全部左移一位,低位补0,相当于乘以2的结果

    1011 << 2 = 1100
    0101 << 1 = 0010

数值超过最大限度后,再次左移会出现问题

>> 有符号“右移”运算

符号位保持不变的情况下剩余全部右移一位,高位补0,相当于除以2的结果

    1011 >> 2 = 1000
    0101 >> 1 = 0010

>>> 无符号“右移”运算

连带符号位一起右移

    1011 >>> 2 = 0101
    0101 >>> 1 = 0010

二进制运算、与运算,会由于高位丢死而造成精度问题
二进制运算、与运算,会由于高位丢死而造成精度问题
二进制运算、与运算,会由于高位丢死而造成精度问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值