[ create a new paste ] login | about

Link: http://codepad.org/APPy8AFw    [ raw code | output | fork ]

C++, pasted on Dec 5:
#include <stdio.h>



// 10 to 2
char* dec_to_bin(char* d, int n) {
   char* t = d;
   unsigned u = (unsigned)n;
   for(unsigned i = u; i != 0; i >>= 1)
        ++d;
   *d = '\0';
   for(--d; u != 0; u >>= 1)
        *d-- = (u & 1) + '0';
   return t;
}



// 2 to 10
int bin_to_dec(const char* b) {
    unsigned n = 0u;
    while(*b) {
        n |= (*b - '0');
        if(*(++b))
            n <<= 1;
    }
    return (int)n;
}




int main(void){
    char b[33];
    int  n;

    n = -0xFFFF;
    printf("src: %d\n", n);
    printf("bin: %s\n",   dec_to_bin(b, n));
    printf("dst: %d\n\n", bin_to_dec(b));

    n = -0xFFFFFFF;
    printf("src: %d\n", n);
    printf("bin: %s\n",   dec_to_bin(b, n));
    printf("dst: %d\n\n", bin_to_dec(b));

    n = -1234567;
    printf("src: %d\n", n);
    printf("bin: %s\n",   dec_to_bin(b, n));
    printf("dst: %d\n\n", bin_to_dec(b));
    return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
src: -65535
bin: 11111111111111110000000000000001
dst: -65535

src: -268435455
bin: 11110000000000000000000000000001
dst: -268435455

src: -1234567
bin: 11111111111011010010100101111001
dst: -1234567



Create a new paste based on this one


Comments: