view c/bitVector/main.cc @ 50:bb0e88fbbe02

impl bitGet and bitSet
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 26 May 2015 00:54:52 +0900
parents f76fe618d5a7
children 898e8d9e1c67
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

unsigned long bitSet(int bitSetPosition, unsigned long bitContainer) {
    unsigned long tmp = 1;
    tmp = tmp << (63 - bitSetPosition);
    bitContainer = bitContainer | tmp;
    return bitContainer;
}

void bitGet(unsigned long bitContainer) {
    for (int i = 63; i >= 0; i--) {
        printf( "%lu", ( bitContainer >> i ) & 1 );
    }
    puts("");
}

int main(int argc, char **argv) {

    int bitSetPosition = 0;
    unsigned long bitContainer = 0;

    for (int i = 1; i < argc ; i++) {
        if (strcmp(argv[i],"-n") == 0) {
            bitSetPosition = atoi(argv[i+1]);
        }
    }

    bitContainer = bitSet(bitSetPosition,bitContainer);
    bitGet(bitContainer);
    return 0;
}