Untitled

mail@pastecode.io avatar
unknown
c_cpp
a month ago
801 B
1
Indexable
Never
#include <stdio.h>
#include <math.h>

int main()
{
    int num=30;
    int bit_count = 0; //Rappresenta il numero di bit necessari
    
    //scanf("%d", &num);
    
    //Caso speciale per 0
    if (num == 0)
    {
        printf("0");
        return 0;
    }
    
    //Determino quanti bit sono necessari
    int temp = num;
    while(temp > 0)
    {
        temp = temp/2;
        bit_count++;
    }
    
    //Stampo i bit dalla fine all'inizio
    int i;
    int potenza_di_2;
    for(i = bit_count - 1; i>=0; i--)
    {
        potenza_di_2 = pow(2, i);
        if(num >= potenza_di_2)
        {
            printf("1");
            num = num - potenza_di_2; //Sottraggo il valore di potenza_di_2
        }
        else
        {
            printf("0");
        }
    }
    
    return 0;
}


Leave a Comment