Hirdetés

Új hozzászólás Aktív témák

  • kovisoft
    őstag

    Sziasztok! Olyan kódot keresek C ben, ami egy printf-el átszámolja nekem a decimális számot, binárissá. De csak 18 és 31 között. Csak egy változót lehet használni. Másfélét találtam, de ilyet még nem.

    Esetleg ezt a kódot, esetleg át lehet alakítani, hogy a megadott módon működjön?
    Vagy leegyszerűsíteni?

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    int i,j,r,dec,bin[20];
    printf("Kerek egy egesz szamot: ");
    scanf("%d", &dec);
    int n=dec;
    i=0;
    while (dec>0)
    {
    r=dec%2;
    bin[i]=r;
    dec=dec/2;
    i++;
    }
    printf("\n %d binaris alakja : ",n);
    for (j=i-1;j>=0;j--)
    {
    printf("%d ",bin[j]);
    }
    getch();
    return 0;
    }

    Ha csak egy változót lehet használni és az maga a változó, amibe beolvastad a decimális számot, akkor itt egy ocsmány és gagyi megoldás: :B

    printf("%d%d%d%d%d\n", (dec&16)>>4, (dec&8)>>3, (dec&4)>>2, (dec&2)>>1, (dec&1));

    Mivel tudjuk, hogy legfeljebb 31 lehet a dec (ezt illik ellenőrizni előtte), ezért szimplán sorban kiolvassuk dec alsó 5 bitjét.

Új hozzászólás Aktív témák