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

#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;
}

转载于:https://www.cnblogs.com/koruko/p/5221921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值