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

数论——位运算(C++)

时间:2016-02-26 23:28:15      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

#include<cstdio>
int n;
void x1_and()
{
    if (n&1)
      printf("奇数\n");
    else
      printf("偶数\n");
}
void x2_or()
{
    printf("%d\n",n|1); //+1奇数 。 
    printf("%d\n",(n|1)-1); //-1偶数。 
}
void x3_xor()
{
    printf("%d\n",n^1); //奇偶转换,+1奇数,-1偶数。 
    printf("%d\n",n^1^1); //类似于负负得正的规律。
}
void x4_not()
{
    unsigned short a=2;
    a=~a; //注意,不等同于直接输出~a。 
    printf("%d\n",a); //处理后,a为short类型的最大值。
    unsigned int b=n;
    printf("%d\n",~b); //此方式输出-b-1,注意,等同于如上方式处理任何整型。 
}
void x5_shl()
{
    printf("%d\n",1<<n); //等同于1乘以2的n次方,故在二进制数后每加一个0,就相当于乘一次2。 
}
void x6_shr()
{
    printf("%d\n",n>>1); //等同于n整除一次2的1次方。 
}
int main()
{
    scanf("%d",&n);
    x1_and(); //用于判断整数的奇偶。
    x2_or(); //用于临近的奇偶转换。
    x3_xor(); //注意,相同为0,不同为1,作用同上。
    x4_not();
    x5_shl();
    x6_shr();
    return 0;
}

数论——位运算(C++)

标签:

原文地址:http://www.cnblogs.com/koruko/p/5221921.html

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