码迷,mamicode.com
首页 > 其他好文 > 详细

位运算相关

时间:2017-05-16 14:59:26      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:table   运算   十进制   部分   快速   位移   左移   log   使用   

位运算符/移位运算符

运算符

  • &运算符

    操作数1的位操作数2的位&的结果位
    1 1 1
    1 0 0
    0 1 0
    0 0 0
  • |运算符

    操作数1的位操作数2的位&的结果位
    1 1 1
    1 0 1
    0 1 1
    0 0 0
  • ^运算符

    操作数1的位操作数2的位^的结果位
    1 1 0
    1 0 1
    0 1 1
    0 0 0
  • ~运算符

    操作数的位~的结果位
    1 0
    0 1

移位运算符

  • 原因:
    主要用于高度优化的代码,在这些代码中,使用其他数据操作的开销太高了

  • 示例:

    int var1, var2 = 10, var3 = 2;
    var1 = var2 << var3;
  • 结果:
    var1 = 40。
    具体过程如下:10的二进制值是1010,把该数值向左移动两位,得到0010 1000,即十进制中的40
  • 快速记忆

   向左位移:等于当前的值乘以移动位数再乘以2

var1 = var2 << var3;
var1 = var2 * var3 * 2
// var1 = 10 * 2 * 2 = 40

   向右位移:等于当前的值除以移动位数再除以2,最后舍去非整数部分

var1 = var2 >> var3;
var1 = var2 / (var3 * 2)
// var1 = 10 / ( 2 * 2) = 2.5
// 然后小数部分被丢弃var1 = 2
// 向右位移操作的时候非整数部分直接丢弃

位运算相关

标签:table   运算   十进制   部分   快速   位移   左移   log   使用   

原文地址:http://www.cnblogs.com/summax/p/6860924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!