| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1079 人关注过本帖
标题:位数组 帮忙改一下 这个代码怎么才能实现具体位的置1(c和指针的一道题)
只看楼主 加入收藏
Feiyiyi1
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2017-10-22
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:4 
位数组 帮忙改一下 这个代码怎么才能实现具体位的置1(c和指针的一道题)
程序代码:
#include <stdio.h>
#include <limits.h>

unsigned character_offset( unsigned bit_number )
{

    int c1=bit_number / CHAR_BIT;
    return c1;                       //计算bit_number第几个字节内
}

unsigned bit_offset( unsigned bit_number )
{
    int j=bit_number % CHAR_BIT;
    return j;                       //计算bit_number 在最高字节里是第几位
}

void set_bit( char bit_array[], unsigned bit_number )    //把指定的位设置为 1
{
    printf("char %c\n",bit_array[character_offset(bit_number)]);
    printf("int  %d\n",bit_array[character_offset(bit_number)]);

    bit_array[ character_offset(bit_number) ] |=
    ( 1 << bit_offset(bit_number) );

    printf("char %c\n",bit_array[character_offset(bit_number)]);
    printf("int  %d\n",bit_array[character_offset(bit_number)]);
}

int main()
{
    char a[20] = "10001100001";
    printf("int       a[0]=%d\nchar      a[0]=%c\n",a[0],a[0]);
    printf("CHAR_BIT: %d\n",CHAR_BIT);
    set_bit(a, 10);
    printf( "%s\n",a );

    return 0;
}
搜索更多相关主题的帖子: 指针 unsigned char int printf 
2017-10-30 14:20
梦想远航lyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:76
注 册:2017-10-23
收藏
得分:10 
#include <stdio.h>
#define BIT 1

void set_bit(char *p,int i)
{
    int j = 0;
    for(j;j < 10;j++)
    {
        if(i == j)
            *(p+i) |= BIT;
        printf("%c",*(p+j));
    }
    printf("\n");
}

int main()
{
    char a[20] = "1000100001";
    //char *p;
    int i;
    //p = a;
    scanf("%d",&i);//输入要想改变的那位
    set_bit(a,i);
   
    return 0;
}
2017-10-30 17:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:5 
看不出是做什么的。
数组直接元素下标操作就可以了吧,a[i]='1'
2017-10-30 20:39
Feiyiyi1
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2017-10-22
收藏
得分:0 
改动一下上面的代码  上面的代码是c和指针作者就是没有主函数,主函数是自己写的  
2017-11-01 14:44
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:5 
以下是引用Feiyiyi1在2017-11-1 14:44:46的发言:

改动一下上面的代码  上面的代码是c和指针作者就是没有主函数,主函数是自己写的  

是不是这意思:
    char a[20] = "1000100001";
    char *p=a;
    int i=1;    //要想改变的那位
    p[i] = '1';
    printf("%.10s\n", p); //显示 1100100001
2017-11-01 16:51
快速回复:位数组 帮忙改一下 这个代码怎么才能实现具体位的置1(c和指针的一道题 ...
数据加载中...
 
   



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

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