Funzione conta in C
#include <stdio.h>
char conta(unsigned int n)
{
int bit, i, max, corr;
max = corr = 0;
for (i = 0; i < 16; ++i)
{
bit = n % 2;
n = n >> 1;
if (bit == 1)
++corr;
else
{
if (corr > max)
max = corr;
corr = 0;
}
}
if(corr > max)
max = corr;
return max;
}
main()
{
printf("%d\n",conta(0xFFFF));
printf("%d\n",conta(0xF000));
printf("%d\n",conta(0x0000));
printf("%d\n",conta(0x0001));
printf("%d\n",conta(0x8000));
printf("%d\n",conta(0xF1F0));
}
Conversione binaria
Il programma riceve in ingresso un intero (senza segno) e restituisce il numero massimo di bit posti a 1 adiacenti. Per esempio, se il parametro di ingresso è un intero il cui corrispondente numerale binario è: 0001110001111100. Il programma restituirà 5.