1 と 0 の文字列をバイナリ値に変換する

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

int main(void) {
    char * ptr;
    long parsed = strtol("11110111", & ptr, 2);
    printf("%lX\n", parsed);
    return EXIT_SUCCESS;
}

より大きな数の場合、long long としてあります バージョン、strtoll .


std::bitset を使用できます (コンパイル時にビットの長さがわかっている場合)
一部のプログラムでは、チャンクに分割して結合することができます.

#include <bitset>
#include <iostream>

int main()
{
    std::bitset<5>  x(std::string("01011"));

    std::cout << x << ":" << x.to_ulong() << std::endl;
}

strtol を使用できます

char string[] = "1101110100110100100000";
char * end;
long int value = strtol (string,&end,2);

No