| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 42026 人关注过本帖, 47 人收藏
标题:C论坛算法团队 首战 西安电子科技大学OJ
只看楼主 加入收藏
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 86楼 C_戴忠意
首先,x^(x>>1)符合第1项(因为0^0=0)

然后对于顺着第k项和倒着第k项,他们的区别仅仅在于最高位分别为0,1(刚好符合gray码定义)
2012-12-09 12:51
布鲁尔
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-9
收藏
得分:0 
我是新手,看到这个果断晕了······
2012-12-09 13:19
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
实力不足,坐等下次参赛


[fly]存在即是合理[/fly]
2012-12-09 13:42
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
回复 88楼 czz5242199
非常感谢,我似乎开始明白了,好久没见着曹哥了。

编程之路定要走完……
2012-12-09 16:02
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,我以为你要这个映射关系的原理呢。你曹哥还是那么话少

重剑无锋,大巧不工
2012-12-09 16:13
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
回复 92楼 beyondyf
主要是我对位操作不熟悉,不太懂怎么使用它们,慢慢来吧,谢谢,杨大哥挂念。

编程之路定要走完……
2012-12-09 21:57
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
杨大哥,曹大哥,昨天谈到位操作,这道题目能用位操作实现吗? http://bttc.
账号:916717312@
密码:000199119000


K:位操作

查看 提交 统计 提问
时间限制: 1000ms 内存限制: 65536kB

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

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

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

样例输入
12345678, 0, 3

样例输出
1234567c


[ 本帖最后由 C_戴忠意 于 2012-12-10 12:14 编辑 ]

编程之路定要走完……
2012-12-10 12:12
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
这个甚至可以说必须用位运算。
程序代码:
#include<stdio.h>
int main()
{
    int a, x, y;
    scanf("%x,%d,%d", &a, &x, &y);
    printf("%x", a & ~((1 << x) | (1 << y - 2)) | (3 << y - 1));
    return 0;
}

 

重剑无锋,大巧不工
2012-12-11 14:49
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
回复 95楼 beyondyf
我太佩服你了!!!
我还有一种想法,用字符串实现。
先把16进制数转换成2进制放到一个字符串里,处理完,然后把他转换成10进制,再转换成16进制。
今天看了点C++
vector string bitset
突然有了这种想法一直没有实现呢。

编程之路定要走完……
2012-12-11 15:20
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
回复 95楼 beyondyf
杨大哥你的代码说实在的我真没看懂。
能不能一步一步解释一下呀,我太崇拜你了。

编程之路定要走完……
2012-12-11 15:25
快速回复:C论坛算法团队 首战 西安电子科技大学OJ
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026035 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved