位运算总结 C语言

  • 位运算

  • 基础位运算的所有过程均为二进制数参与
  • 十进制转换为二进制的方法:
    用 2 整除十进制数,得到商和余数;
    再用 2 整除商,得到新的商和余数;
    重复第一步和第二部,直到商为零;
  • 从后往前,每步得到的数为二进制数的高位到低位。

    21/2=10余1
    10/2=5余0
    5/2=2余1
    2/2=1余0
    1/2=0余1
    所以 21转换为二进制数为10101.
  • 位运算符有6种:&,|,^,>>,<<,~
  • 一.&(按位与)
    此运算符的意思为:将比较的两数每位以此进行比较,如果对应的二进制位数均为1则结果为1,否则,结果为0
    如 十进制数 6和9
    6的二进制数为:00000101
    9的二进制数为:00001001
    00000101&00001001
    result:00000001
  • 二.|(按位或)
    此运算符的意思为:将比较的两数每位以此进行比较,只要对应的二进制位中有 1,结果位为 1,否则为0
    如 十进制数 6和9
    6的二进制数为:00000101
    9的二进制数为:00001001
    00000101|00001001
    result:00001101
  • 三.~(取反运算符)
    此运算符的意思为:将数字对应二进制各位上对应的数:1变为0,0变为1
    如 十进制数 6
    6的二进制数为:00000101
    ~6为11111010
  • 四.<<(左移运算符)
    此运算符的意思为:将数字所对应的二进制数进行左移
    如 十进制数 6
    6的二进制数为:00000101
    左移四位得(6<<4):01010000(高位舍弃,低位补0)
  • 五.>>(右移运算符)
    此运算符的意思为:将数字所对应的二进制数进行右移
    如 十进制数 6
    6的二进制数为00000101
    右移四位得(6>>4):00000000(低位舍弃,高位补0)
  • 六.^(按位异或)
    此运算符的意思为:两数二进制数对应位数上的数不同则为1,否则为0
    6的二进制数为:00000101
    9的二进制数为:00001001
    00000101^00001001
    result:00001100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值