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

按位运算符操作

时间:2014-08-19 16:58:45      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   数据   ar   amp   ad   on   

C语言中提供了6个位操作符。这些运算符只能作用于整形操作数,即只能作用于带符号或者无符号的char、short、int、long类型:

& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
<< 左移
>> 右移
~ 按位取反(一元运算符)

下面以整形int为例进行说明(为了便于说明,设置二进制只有8位):

#include "stdio.h"

int main(int argc, char const *argv[])
{
    // 位操作符,只能作用于带符号,或则无符号的基本数据类型
    int n = 4;
    // 4的二进制表示为100
    printf("%d\n", n & ~0);     //按位与100 & 11111111 = 00000100 即4

    printf("%d\n", n | ~0);     //按位或100 | 11111111 = 11111111 
                                //为负数,减1取反得00000001 即-1

    printf("%d\n", n ^ ~0);     //按位异或100 ^ 11111111 = 11111011
                                //为负数,减1取反得00000101 即-5

    printf("%d\n", n << 2);     //左移两位得00010000 即4 * (2^2) = 16
    printf("%d\n", n >> 2);     //右移两位得00000001 即1
    printf("%d\n", ~n);         //取反的11111011 即-5
    return 0;
}



按位运算符操作,布布扣,bubuko.com

按位运算符操作

标签:style   color   io   数据   ar   amp   ad   on   

原文地址:http://my.oschina.net/Barudisshu/blog/304344

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