Chinaunix首页 | 论坛 | 博客
  • 博客访问: 411041
  • 博文数量: 119
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 1258
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-24 13:50
文章分类

全部博文(119)

文章存档

2018年(6)

2017年(11)

2016年(4)

2013年(8)

2012年(1)

2011年(2)

2010年(4)

2009年(37)

2008年(16)

2006年(30)

我的朋友

分类: C/C++

2006-09-27 16:10:25

打印
|76543210|76543210|76543210|76543210|76543210|
先打印7 在顺序打印到0, 把一个数分成8位来看

算法1:
#include
#include
#include


void Print_bit(int* s, int n)
{
    unsigned  int i, j;
    for(i=0;i<7;i++){
            for(j=0;j                fprintf(stderr, "%2d",(s[j]/(unsigned int)pow(2, i))%2);
            }
            fprintf(stderr, "\n");
    }
}


int main(void)
{
    int s[8]={1,2,3,4,5,6,7,8};
    Print_bit(s, sizeof(s)/sizeof(int));
    return 0;
}


算法2:   这个是分别打印每个数的7到0位。和上面的打印顺序不同
#include
#include

void print_bit(int *s, int len, int n)
{
        int i;
        for(i = 0; i < len; i++) {
                int ii = 1;
                ii <<= (n - 1);
                while(ii >= 1) {
                        printf("%d ", (ii & s[i]) > 0);
                        ii >>= 1;
                }
                printf("\n");
        }
}


int main(void)
{
    int s[]={1, 2, 3, 4, 5, 6, 7,8};
    print_bit(s, sizeof(s)/sizeof(s[0]), 8);
    return 0;
}

阅读(1235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~