位操作
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 8964   Accepted: 3581

Description

如果你工作在一个32位的机器上,你须要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位開始的连续三位设置成110(从高位到低位的顺序),而其它位保持不变。对给定的寄存器值R。及X,Y。编程计算更改后的寄存器值R。

Input

仅一行,包含R,X,Y。以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合

Output

更改后的寄存器值R(16进制输出)

Sample Input

12345678,0,3

Sample Output

1234567c

做完这个题目AC的时候,再看其它人discuss的时候。哭的心都有了。自己竟然模拟做。。。

各种WA,RE都搞出来了。

。。受不了了。代码各种幼稚我也不优化了。。。

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
using namespace std; int wei[10000]; void change_to(char R[10000])
{
int i,j;
for(i=7;i>=0;i--)
{
int temp=R[i];
for(j=0;j<=3;j++)
{
wei[(7-i)*4+j]=temp&1;
temp=temp>>1;
}
}
} void change(int x,int y)
{
if(x>=0&&x<=31)
wei[x]=0;
if(y>=2)
{
wei[y]=1;
wei[y-1]=1;
wei[y-2]=0;
}
else if(y==1)
{
wei[y]=1;
wei[y-1]=1;
}
else
wei[y]=1; } void solve()
{
char temp;
int i;
int flag=1;
for(i=31;i>=3;i=i-4)
{
int sum= wei[i]*8 + wei[i-1]*4 + wei[i-2]*2 + wei[i-3];
if(sum<=9 && sum>=0)
{
temp=sum+'0';
}
else
{
temp=sum+87;
}
if(temp=='0'&&flag==1)
{
}
else
{
flag=0;
cout<<temp;
}
}
} int main()
{ char R[10000],temp_R[10000];
char temp;
int x,y,i=0,j,k; memset(R,0,sizeof(R)); while(scanf("%c",&temp_R[i]),temp_R[i++]!=',');
i--;
j = 8-i;
k = 0;
for(i=j;i<8;i++)
{
R[i] = temp_R[k++];
}
for(x=0;x<8;x++)
{
if(R[x]>='0'&&R[x]<='9')
R[x]=R[x]-'0';
else if(R[x]>=97)
R[x]=R[x]-'a'+10;
}
scanf("%d,%d",&x,&y); change_to(R);
change(x,y);
solve(); cout<<endl; return 0;
}

话说位运算真是简单啊。%x真是方便啊,别总认准%d啊。

代码:

#include <iostream>
#include <cstdio> using namespace std; int main() {
unsigned int r, x, y; while(scanf_s("%x,%d,%d", &r, &x, &y) == 3) {
r = r & (~(1<<x));//将r的x位置为0
r = r | (1<<y);//将r的y位置为1
r = r | (1<<(y-1));
r = r & (~(1<<y-2));
printf("%x\n", r);
} return 0;
}

POJ 3748:位操作的更多相关文章

  1. poj 3748 位操作

    位操作 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8856   Accepted: 3535 Description 假 ...

  2. POJ - 3652 Persistent Bits

    “模拟”类型,题型容易,使用bitset库对二进制逐位操作,初始化.十进制转二进制(unsigned int).位操作. POJ - 3652 Persistent Bits Time Limit:  ...

  3. poj 1753 Flip Game 枚举(bfs+状态压缩)

    题目:http://poj.org/problem?id=1753 因为粗心错了好多次……,尤其是把1<<15当成了65535: 参考博客:http://www.cnblogs.com/k ...

  4. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  5. POJ 1321 棋盘问题(状态压缩DP)

    不总结的话, 同一个地方会 WA 到死 思路: 状态压缩 DP. 1. s 表示压缩状态, 若第 i 列放了棋子, 那么该列置 1, 否则该列置 0. 假如 s = 3(0x011) 那么表示棋盘的第 ...

  6. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  7. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  8. POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  9. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

随机推荐

  1. vue2.0 引入font-awesome

    网上的大部分教程复杂而且难看懂,其实两步就能搞定. 先cnpm install font-awesome --save引入依赖 然后在main.js引入 font-awesome/css/font-a ...

  2. javascript中window,document,body的解释

    解释javascript中window,document,body的区别: window对象表示浏览器中打开的窗口,即是一个浏览器窗口只有一个window对象. document对象是载入浏览器的ht ...

  3. .net framework 3.5 安装报错 0x800F0954问题

    windows Server 2019 .net framework 3.5 安装报错 0x800F0954问题 .net framework 3.5的安装教程:但是安装出现0x800F0954这个错 ...

  4. 研磨JavaScript系列(五):奇妙的对象

    在JavaScript中,只有object和function两种东西有对象化的能力.我们先来说说函数的对象化能力. 任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可 ...

  5. 【1】Jdk1.8中的HashMap实现原理

    HashMap概述 HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 内部实现 ...

  6. 背包系列 hdu 3535 分组背包

    题意: 有n组工作,现在有T分钟时间去做一些工作.每组工作里有m个工作,并且类型为s,s类型可以为0,1,2,分别表示至少选择该组工作的一项,至多选择该工作的一项,不限制选择.每个工作有ci,gi两个 ...

  7. 如何在Linuxt系统下运行maven项目

    如何在Linuxt系统下运行maven项目 我们知道现在利用MAVEN来管理JAVA项目是非常常见的.比如公司一般都有一个自己的MAVEN仓库,通过MAVEN仓库来解决我们的项目依赖,更加方便的构建项 ...

  8. postgresql用sql语句查询表结构

    用到的postgresql系统表 关于postgresql系统表,可以参考PostgreSQL 8.1 中文文档-系统表. pg_class 记录了数据库中的表,索引,序列,视图("关系&q ...

  9. ARM架构与体系学习(二)——3级流水线

    ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报  分类: ARM7(16)  版权声明:本文为博主原创文章 ...

  10. vue里的tab控件

    如下图,v-model绑定的值,这个值在js里一旦改变,视图就会切换到相应的tab页,这意味着一定要先给tab页内容数据赋值,再改变这个tabsIndex的值 如下图,先赋值data列表数据,在更改t ...