码迷,mamicode.com
首页 > 编程语言 > 详细

c/C++二进制运算符

时间:2015-12-20 16:01:30      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

c/c++中常用的二进制运算符有六个.这里对这六个做简单的介绍和应用举例.

  1.  &  :  与 操作.作用于两个二进制数,当然也可以对整型数据进行操作(当两边为整型数据会自动转化为二进制数).二进制与用来对位进行置零或者复位.如果两个值进行二进制与,只有当两个对应的位都为1时结果位上为1(同1结果为1,有0结果为0),其他情况都为0.如下:

      01011001 & 00101001

      结果为:00001001

      2. | :或  操作.和1的与操作类似.用来合并值.只有当两个对应位都为0,结果位为0(有1结果为1,同0 结果为0),其他情况都为1.例如:

      01011001 | 00101001

      结果为:01111001

      3. ^ :异或  操作.这个运算符当两个值在某一位上相同时结果位为0,不同结果为1.如一个是1一个是0(相同为0 不同为1),结果位是1;两个都为1或者0结果位是0;例如:

      01011001^00101001

      结果为:01110000

       4.~ :求补操作.这个运算符只对一个二进制数据进行操作,对该数每一位取反,(即1变为0,0变为1).例如:

    ~01011001

    结果为:10100110

  最后两个为移位操作符.这两个操作符用来对一个值中的位左移或右移某个特定数字的位数.">>"右移操作."<<"左移操作.        "<<"左移操作:向左移动n位,相当于原数乘以2的n次方;存在问题:左移可能改变一个数的正负;

            ">>"右移操作:向右移动n位,值等于原值除以2的n次方;

      例如:

    01011001>>2  01011001<<2

    结果为:0010110  01100100

 

     实用技能:

                 想要获取一个数的最低位,让这个数和1 进行&操作,都会得到这个数的最低位;例如:

        00000011010001  &  00000000000001  

   

       最终结论为:    1&单数结果为1        

                            1&双数结果为0 

     

       

 

c/C++二进制运算符

标签:

原文地址:http://www.cnblogs.com/lianchenboke/p/5061032.html

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