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

    & 与

    | 或

    ^ 异或

    ~ 取补

    << 左移

    >> 右移

    其中取补只有一个操作数而其它的位操作符都有两个操作数。这些运算都不会产生溢出位。操作符的操作数为整型或者是可以转换为整型的任何其它类型。

    • 与运算

    操作数按二进制位进行与运算,运算规则为:

    0&0=0

    0&1=0

    1&0=0

    1&1=1

    这说明除了两个位均为1, 与运算结果为1。 其它情况下与运算结果均为0。

    比如2 和10 进行与运算,2 的二进制表示 00000010,10 的二进制表示 00001010, 与运算的结果 00000010, 所以2&10 的结果为2

    • 或运算

    操作数按二进制位进行或运算,运算规则为:

    0|0=0

    0|1=1

    1|0=1

    1|1=1

    这说明除了两个位均为0, 或运算结果为0; 其它情况下或运算结果均为1。

    比如2 和10 进行或运算, 2 的二进制表示 00000010, 10 的二进制表示 00001010, 或运算的结果 00001010 。所以2|10 的结果为10。

    • 异或运算

    操作数按二进制位进行异或运算。运算规则为:

    0^0=0

    0^1=1

    1^0=1

    1^1=0

    这说明当两个位相同时,异或运算结果为0。 不相同时异或运算结果为1。

    比如 2 和10 进行异或运算, 2 的二进制表示 00000010, 10 的二进制表示 00001010, 异或运算的结果 00001000, 所以2^10 的结果为8

    • 取补运算

    取补运算对操作数的每一位取补. 如对10 取补结果为: 10 的二进制表示 00001010 与运算的结果 11110101

    • 左移运算

    位左移运算将整个数按位左移若干位,左移后空出的部分0。比如:8位的byte型变量

    byte a=0x65(即二进制的01100101),将其左移3位:a<<3的结果是0x27(即二进制的00101000)。

    • 右移运算

    位右移运算将整个数按位右移若干位,右移后空出的部分填0。比如:8位的byte型变量

    Byte a=0x65(既(二进制的01100101))将其右移3位:a﹥﹥3的结果是0x0c(二进制00001100)。

  • 相关阅读:
    hdu5914 Triangle 【贪心】
    2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
    hdu 4034 【floyed变形】
    A
    hdu 2553 N皇后问题【dfs】
    【算法入门经典】7.4回溯法【八皇后问题】
    用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示-面试题
    Firebug控制台详解
    CSS实现兼容性的渐变背景(gradient)效果
    jQuery学习——入门jQuery选择器之层次选择器
  • 原文地址:https://www.cnblogs.com/msnadair/p/4037433.html
Copyright © 2011-2022 走看看