Преобразование строки 1 с и 0s в двоичное значение

Вы можете вызвать .sort () перед вызовом .each ()

$("div[id*=pi_div]").sort(function(a,b){
    if(a.id < b.id) {
        return -1;
    } else {
        return 1;
    }
}).each(function() { console.log($(this).attr("id"));});

EDIT: мне было интересно, почему другие ответы удаляют pi_div часть идентификатора, и я получаю его. Если вы сравните на основе «строк» ​​pi_div10, появится перед pi_div2.

19
задан John Topley 11 August 2009 в 15:41
поделиться

4 ответа

#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.

34
ответ дан 30 November 2019 в 02:09
поделиться

Можно использовать станд.:: bitset (если затем длина Ваших битов известна во время компиляции)
, Хотя с некоторой программой Вы могли разбить его в блоки и объединение.

#include <bitset>
#include <iostream>

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

    std::cout << x << ":" << x.to_ulong() << std::endl;
}
14
ответ дан 30 November 2019 в 02:09
поделиться

Можно использовать стертол

char string[] = "1101110100110100100000";
char * end;
long int value = strtol (string,&end,2);
9
ответ дан 30 November 2019 в 02:09
поделиться

Можно использовать Повышение Динамический Bitset:

boost::dynamic_bitset<>  x(std::string("01011"));
std::cout << x << ":" << x.to_ulong() << std::endl;
6
ответ дан 30 November 2019 в 02:09
поделиться