美文网首页
xmutoj1140(二进制简单操作)

xmutoj1140(二进制简单操作)

作者: jenye_ | 来源:发表于2018-06-11 09:16 被阅读0次

弹幕天邪鬼
Time Limit:1000MS Memory Limit:65536K
Total Submit:154 Accepted:93
Description
鬼人正邪只是一个性格扭曲的天邪鬼,她一天到晚脑子里总想着和其他人相反的事情。
别人一反感她就高兴,看到别人一高兴她就开始心生厌恶。在数学中,正邪很喜欢相反数。不过她既然是一个性格扭曲的天邪鬼,她认知的相反数和凡人怎么能一样呢?
给定一个十进制数A,正邪定义的相反数就是把这个数转化为二进制之后,忽略高位的0,然后作轴对称,例如对于十进制的数123(1111011),它的相反数是111(1101111)。
Input
首先是一个正整数T,表示测试数据的组数。
对于每组测试数据,只有一个正整数A(A<=10^9)
Output
对于每组测试数据,输出正邪眼中的相反数。

Sample Input
2
123
5201314
Sample Output
111
2284921
#include<iostream>
#include<algorithm>
using namespace std;

int setvalue(int x,int value,int pos){
    if(value){
        x = x|(1<<pos);
    }else{
        x = x&~(1<<pos);
    }
    return x;
}

int getvalue(int x,int pos){
    x = x&(1<<pos);
    return x>>pos;
}

int main(){
    int T;
    cin>>T;
    while(T--){
        int len=0;
        int x;
        cin>>x;
        int tempx;
        tempx = x;
        //计算二进制数长度 
        while(tempx>0){
            tempx /= 2;
            len++;
        }
        int L,R;
        L = len;
        R = 1;
        while(L>R){
            int tempL;
            int tempR;
            tempL = getvalue(x,L-1);
            tempR = getvalue(x,R-1);
            x = setvalue(x,tempL,R-1);
            x = setvalue(x,tempR,L-1);
            R +=1;
            L -=1;
        }
        cout<<x<<endl;
    }
    return 0;
} 

相关文章

  • xmutoj1140(二进制简单操作)

    弹幕天邪鬼Time Limit:1000MS Memory Limit:65536KTotal Submit:1...

  • hugo搭建博客

    1. 二进制安装(推荐:简单、快速) Windows: 到 Hugo Releases 下载对应的操作系统版本的H...

  • Java位操作相关知识总结

    位操作 位操作即将数字转为二进制形式后,按照二进制位进行操作,位操作主要包括如下几种。 & 按位与1 & 1 = ...

  • Python进阶

    Python二进制表示和位操作 Python二进制表示和位操作 - 简书 OpenH264/libSRTP/lib...

  • Java基础系列-二进制操作

    原创文章,转载请标注出处:《Java基础系列-二进制操作》 概述 Java源码中涉及到大量的二进制操作,非常的复杂...

  • Redis数据类型及操作-string

    strings类型及操作 string是最简单的类型.一个Key对应一个Value.string类型是二进制安全的...

  • redo日志、undo日志、binlog日志与doublewri

    binlog日志 (二进制日志) 二进制日志记录了对MySQL数据库执行更改的所有操作,它是一种逻辑操作,其记录的...

  • MySQL 二进制日志的使用

    本文的操作环境是 macOS Mojave 10.14.1, mysql 5.7.19 二进制日志的作用 二进制日...

  • redis学习之三:string类型及操作

    string 是最简单的类型,一个key对应一个value二进制安全,最大上限是1G字节 结构如下: 操作代码: ...

  • 日志管理

    日志管理 日志介绍 错误日志 二进制日志 案例 gtid 案例 二进制日志其他操作 慢日志 分析

网友评论

      本文标题:xmutoj1140(二进制简单操作)

      本文链接:https://www.haomeiwen.com/subject/edeceftx.html