标题:新手求助!如何依次产生锁定某个二进制位的数?
只看楼主
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
结帖率:100%
已结贴  问题点数:20 回复次数:6 
新手求助!如何依次产生锁定某个二进制位的数?
可能我表述的不太明白,表达能力不太好。还是举个例子吧:
00000001,00000011,000000101,就是某个位不变(这里是末尾)依次往上加;
再来一个,00010000,00010001,00010010就是这样额。
自己想的太麻烦了。8个for,看的我都头疼。
麻烦各位像个简单易行的,最主要的是精简代码。多谢啦!
搜索更多相关主题的帖子: 就是这样 
2011-05-30 22:17
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:4 
逐位加1?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-30 23:14
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:4 
程序代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
#define set_fix(bit)            ( 1 << ((bit) % 31) )
#define combine(fix, offset)    ( fix | (1<<offset) )

    int fix;
    int i;
    printf("init fix bit?\n");
    scanf("%d", &fix);
    fix = set_fix(fix);
    for (i=0; i<32; i++) {
        printf("0x%X\t", combine(fix, i));
    }       
    return 0;
}

技术问题,请不要以短消息方式提问
2011-05-30 23:28
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:4 
程序代码:
#include <stdio.h> 

int main(void) {
    unsigned int source, fix, i;
    printf("Enter source: ");
    scanf("%u", &source);
    printf("Enter fix: ");
    scanf("%u", &fix);     // if(fix > sizeof(int) * 8) return 1;
    source |= fix-- ? 1 << fix : 0;
    for(i = 0; i < sizeof(int) * 8; i++)
        printf("%d", (0x80000000 & (source << i)) >> (sizeof(int) * 8 - 1));     // 如果使用16环境,0x80000000改为0x8000
    return 0;
}





[ 本帖最后由 lz1091914999 于 2011-5-31 10:56 编辑 ]

My life is brilliant
2011-05-31 10:07
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:4 
用字符串较好。
2011-05-31 10:18
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
学习!!!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-31 10:46
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
得分:0 
可能我表达能力确实不好,虽然有的看不懂,但大家貌似都误解我的意思了。没办法,我再发个帖。
2011-05-31 22:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-341455-1-1.html




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

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