zoukankan      html  css  js  c++  java
  • 位运算



    1.AND按位与(&)【有0则0】
    运算规则:0&0=0;0&1=0;1&0=0;1&1=1;

    用途:
    (1)取出一个数的指定位。指定位&1,其余位&0。

    例:设x=11101100,取x的低四位。令x&00001111=00001100

    快速幂里, b & 1 得到的是b的二进制最后一位, (因为1的二进制是001, 有0则0嘛)
    (2) a & -a 得到此数的二进制最后一位1及其后面的数

    2.按位或(|)【有1则1】
    运算规则:0|0=0;0|1=1;1|0=1;1|1=1;

    用途:

    (1)常用来对某些位置1。或上 一个指定位为1,其余位为0的数值即可。

     例:设x=11101100,将x的低四位置1。令x|00001111=11101111

    3.XOR异或(^)【同0异1】
    运算规则:0 ^ 0=0; 0 ^ 1=1; 1 ^ 0=1; 1^1=0;

    用途:

    (1)寻找出现次数为奇数的数, 异或同一数两次=原数,即为那个出现次数为奇的数

    (2)与0异或,保留原值。与1异或, 翻转.
      例: 0000 ^ 1100= 1100, 和 1111 ^ 1100= 0011

    (3)交换两个变量的值 a=a ^ b;b=a ^ b;a=a^b

    4:<< (左移运算符)
    各二进位全部左移若干位,高位丢弃,低位补0

    例:10的二进制是1010
    10<<7:1010000000

    5:>> (右移运算符)
    各二进位全部右移若干位,高位补0
    例:10的二进制是1010
    10>>7:00000001010
    用途:获取一个数x的第i位的二进制数:
    int u = x>>i&1;

  • 相关阅读:
    计算机网络第一章_20210512
    bootloader_华清远见
    C#3.17
    linux--cd命令
    国内的开源网站
    安装linux
    如何自我介绍
    课堂破冰游戏“猜猜他是谁”
    办公软件---word
    计算机网络--技能训练
  • 原文地址:https://www.cnblogs.com/la-la-wanf/p/14476666.html
Copyright © 2011-2022 走看看