二进制的表示和运算

二进制

​ 在内存中,所有的数都以二进制来表示,二进制的一些概念:

​ 一个二进制位代表一个bit,也就是kb中的b,8个bit一个字节。

数字的表示

​ 正数:表示为二进制数就是直接转化成二进制。

比如 8的二进制表示也就是在内存中是 0000 1000 表示为byte

​ 负数:补码符号位是1,其他位是对应正数的二进制取反加1。

-8的二进制是1111 1000 8的二进制上面已经有了 其实就是取反加1 再给最高位设置为1. 表示为byte

数字的运算

  1. 符号表示:&

    运算方式:相同返回1 不同返回0

    1011 & 1100 = 1000

  2. 符号表示:|

    运算方式:有一个为1就为1 不然为0

    1001 | 1100 = 1101

  3. 符号表示:!

    运算方式:直接取反

    !1001 =0110

  4. 异或

    符号表示:^

    运算方式:两个二进制相同为0 不同为1

    1001 ^ 1101 = 0100

    有的时候会当做两个数交换位置的用法,不用再新建一个变量 比如

    a =6 b=7 平时想交换值得

    int c =0

    c=b

    b=a

    a=c

    使用异或

    a=a^b 0110 ^ 0111 = 0001

    b=a^b 0001 ^ 0111 = 0110

    a=a^b 0001 ^ 0110 = 0111

    正好能够交换值。

  5. 左移

    符号表示:<<

    运算方式:左移就是左移几位,后面加0

    0000 1110 <<2 0011 1000 14 -> 56 左移几位相当于乘2的几次方 不超过该类型最大值。

  6. 右移

    符号表示:>>

    运算方式:右移就是二进制右移几位,整数第一位补0 负数第一位补1

    0000 1110 >> 2 0000 0011 14->3 除以几个2 的商

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值