| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1306 人关注过本帖
标题:CSDN, 我进去看一次就吐一次, 哈哈
只看楼主 加入收藏
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
但是他的代码可以做到提取int ,等其他多字节的类型
// 这句我不想多做解释

对于一个int a;我提取每个bit位
你的需要一个中间 char *c=(char *)&a
然后再拿c与bits[] 操作

而他的直接union ucb *ucb=(union ucb*)a;
然后随便取!
2010-09-24 11:36
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:2 
以下是引用遮天云在2010-9-24 11:10:20的发言:

个人认为CSDN还是比较活跃的!百度排名第一呢
CSDN人气比较旺
但是板块没这里做得好
版主没这里的好
这里哥们多 哈哈

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-09-24 11:39
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
以下是引用BlueGuy在2010-9-24 11:16:22的发言:

我本想在那个帖子里回复你一次的, 想想还是算了,
以下是引用真我在2010-9-23 22:42:55的发言:

/*******************************/
不带你这样玩的,这样更累
你都不懂就乱评价!
程序代码:
#define PIG_NUMBER_ONE(a,b,c) printf("%d%d%d\n",a,b,c);
#define PIG_NUMBER_TWO(a,b,c) PIG_NUMBER_ONE(a,b,c)\
    PIG_NUMBER_ONE(a,c,b)\
    PIG_NUMBER_ONE(b,a,c)\
    PIG_NUMBER_ONE(b,c,a)\
    PIG_NUMBER_ONE(c,b,a)\
    PIG_NUMBER_ONE(c,a,b)
#define PIG_NUMBER_THREE(a,b) PIG_NUMBER_ONE(a,a,b)\
    PIG_NUMBER_ONE(a,b,a)\
    PIG_NUMBER_ONE(b,a,a)
int main(){   
    for(unsigned int a=0;a<10;a++){
        if(a==3)
            continue;
        for(unsigned int b=a;b<10;b++){
            if(b==3&&b==0)
                continue;
            if((a+b)%3==0){
                PIG_NUMBER_TWO(3,b,a)
            }
        }
    }
    PIG_NUMBER_THREE(0,3)
    PIG_NUMBER_THREE(3,6)
    PIG_NUMBER_THREE(3,9)
    PIG_NUMBER_ONE(3,3,3)
    return 0;
}

你这代码也够漂亮的,
我知道你是贬低的意思!你没必要说的这么隐晦!
最效率的办法,就是像模板特化一样,将所有的情况枚举出来,展开!
就像你说的,个人的理解不同,

我不过是仿效windowsx.h里面的枚举消息宏展开而已
2010-09-24 11:49
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
对于一个int a;我提取每个bit位
你的需要一个中间 char *c=(char *)&a
然后再拿c与bits[] 操作
//
你在说笑吧?
const static unsigned int bits[32] = {...0x80, 0x40, 0x20, 0x10, 8, 4, 2, 1};
int a = ?;
for (j = 0; j < 32; j++) {
{
   if (a & bits[j%32])
       printf("%d", 1);
   else
       printf("%d", 0);
}

我就是真命天子,顺我者生,逆我者死!
2010-09-24 14:32
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
以下是引用vandychan在2010-9-24 11:39:58的发言:

CSDN人气比较旺
但是板块没这里做得好
版主没这里的好
这里哥们多 哈哈
呵呵!这倒是!所以我常来这啊
2010-09-24 15:04
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
以下是引用BlueGuy在2010-9-24 14:32:02的发言:

对于一个int a;我提取每个bit位
你的需要一个中间 char *c=(char *)&a
然后再拿c与bits[] 操作
//
你在说笑吧?
const static unsigned int bits[32] = {...0x80, 0x40, 0x20, 0x10, 8, 4, 2, 1};
int a = ?;
for (j = 0; j < 32; j++) {
{
   if (a & bits[j%32])
       printf("%d", 1);
   else
       printf("%d", 0);
}
这样可以,不过按你这样写
还不如直接
int j=sizeof(int);
for(int i=0;i<j;i++)
if((a>>i)&1)
2010-09-24 15:28
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
行吧,学习了。
这题实用性很强的,点阵字体就是按照这种方式 "生成一个字节,可以记录一布尔值" 存储的。

我就是真命天子,顺我者生,逆我者死!
2010-09-24 15:36
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:2 
CSDN的高手比较多,但是C语言论坛到不是很活跃。一般都是程序员上的

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-09-24 16:44
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:2 
其实联合体也避免不了位运算

—>〉Sun〈<—
2010-09-24 17:00
wisji8
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:53
专家分:198
注 册:2010-9-19
收藏
得分:2 
真的学习到了。不管是哪位的代码。
2010-09-24 18:52
快速回复:CSDN, 我进去看一次就吐一次, 哈哈
数据加载中...
 
   



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

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