Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 23. 04. 2012 18:06

ReVolt
Příspěvky: 99
Škola: UPOL
Pozice: Student
Reputace:   
Web
 

Bitové pole/operátory

Ahoj, děláme bitové operátory a pole a já v tom docela plavu, mohl by mi nekdo poradit s tímto kódem, vysvětlit proč jsou některé věci tak jak jsou

Code:

void vypis(mnozina A)
{
    long maska;
    int index;
    int i, j;
    int mez_i;

    index = 0;

    /* vypocet meze cyklu */
    mez_i = A.pocet / (sizeof(int) * 8) + 1;

    /* cyklus pres cisla typu int */
    for (i = 0; i < mez_i; i++) {

    /* vypocet meze cyklu */
    int mez_j = (i < mez_i - 1) ? sizeof(int) * 8 : (A.pocet % (sizeof(int) * 8));

    /* posun masky na zacatek */
    maska = 1;

    /* cyklus pres jednotlive bity */
    for (j = 0; j < mez_j; j++) {

        /* pokud je prvek v mnozine - bit 1 pod maskou,
         * tak vypiseme odpovidajici index
         */
        if (A.prvky[i] & maska)
        printf("%i, ", index);
        maska *= 2;        /* posun masky */
        index++;        /* posun indexu */
    }
    }
}

hlavně teda to mez_i a mez_j a maska

Díky moc


http://www.turistickyraj.cz - napsal jsem a spravuji

Offline

 

#2 24. 04. 2012 13:43 — Editoval ReVolt (24. 04. 2012 18:13)

ReVolt
Příspěvky: 99
Škola: UPOL
Pozice: Student
Reputace:   
Web
 

Re: Bitové pole/operátory

Tak jsem to snad pochopil správně, teď mám jiný problém, vytvořil jsem si pár proměnných typů long, int, vše bylo v pořádku, ale když jsem na začátek funkce připsal

Code:

mnozina C;
    C.prvky = (int *) malloc(3 * sizeof(int));    
    C.pocet = 3 * sizeof(int) * 8;

tak mi to píše
c:\users\uživatel\documents\visual studio 2008\projects\mnoziny\mnoziny\main.c(49) : error C2143: syntax error : missing ';' before 'type'

u všech proměnných, nerozumím tomu, středníky jsou všechny správně

Vyřešeno, zapomněl jsem že VS kompilátor chce všechny proměnné na začátku funkce
Jinak to vysvětlení některých věcí popsaných v prvním příspěvku pořád platí, nerad bych něco pochopil špatně


http://www.turistickyraj.cz - napsal jsem a spravuji

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson