Курсовая работа: Синтаксический анализатор полиномов
{
s1 = 0;
s0 = 0;
//ставим закрывающий 0 в начало,
//чтоб потом можно было цеплять к концу 1 или 0
str[0]='\0';
//цикл по битам числа b[k]
for (int i = sizeof (b[k])*8-1; i >= 0; i--)
{
//b[k]>>i - побитовый сдвиг вправо на i бит
//0x1 - число 1 в бинарном представлении
//((b[k]>>i) & 0x1) == 1 - позволяет определить бинарный вид числа
if (((b[k]>>i) & 0x1) == 1)
{
s1++;//увелич. кол-во единиц
strcat(str,"1");//цепляем "1"
}
else
{
s0++; //увелич. кол-во нулей
strcat(str,"0");//цепляем "0"
}
}
cout<<b[k]<<" "<<str<<" kol-vo '1'="<<s1<<" kol-vo '0'="<<s0<<endl;
//поиск макс. числа единиц
if (s1>s1max)
{
s1max=s1;
//массив bmax заполняется числами по возрастанию кол-ва единиц