abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:33 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 4
    dnes 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 7
    včera 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (44%)
     (21%)
     (4%)
     (6%)
     (3%)
     (1%)
     (1%)
     (19%)
    Celkem 299 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: C bitwise a retezce

    8.8.2008 23:41 Nikola Pajkovský | skóre: 16
    C bitwise a retezce
    Přečteno: 249×
    Zdarvim

    Zajimalo by me jestli je mozne binarne prohazovat retezce(respektive znak po znaku). Je mozne prohodit int a i char. Pouzil jsem notoricky zname makro

    #define SWAP(a, b) (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b)))

    Ale dostal jsem se do ouzkych. Pokud SWAP zavolam s char tak to vubec neni problem a bitove to prohodi. Ale problem number one je.

    char* str_reverse( char* str )
    {
        assert( str != NULL );

        char *result = NULL;
        result = str_init( str );

        unsigned int len = strlen( result );
        unsigned int loop = len >> 1;
        for( int i = 0; i < loop; i++ ){
            if( i == loop )
                break;
            SWAP( result[i], result[len-i]);
        }
        return result;
    }

    Save the whales. Feed the hungry. Free the mallocs

    Odpovědi

    9.8.2008 00:12 H4wk | skóre: 9 | blog: H4wkuv_blog
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Tak v tom cyklu jsou nejake chyby. Mel by vypadat zhruba takhle:
    for (int i = 0; i < loop; i++) {
        SWAP(result[i], result[len-1-i]);
    }
    
    Korespondenční Seminář z Programování - Pro každého středoškoláka, který to s programováním myslí vážně.
    9.8.2008 01:25 Nikola Pajkovský | skóre: 16
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Dik uz to jede
    Save the whales. Feed the hungry. Free the mallocs
    9.8.2008 01:01 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Nemluve o tom ze tohle makro je na aktualnich procesorech zbytecne pomale, protoze neumoznuje paralelni provadeni. Postup pres pomocnou promennou bude v drtive vetsine pripadu rychlejsi.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    9.8.2008 01:32 Nikola Pajkovský | skóre: 16
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Mohl by jsi to tochu vic rozvest jak to udelat paralerne? Podle me nejdriv projede preprocesor ktery nahradi mista kde jsou makra a pak jde syntakticka anazyla(LR), semantika, vygenrovni kodu, optimalize, generovani kodu. Moc prave nevidim tu brzdu???
    Save the whales. Feed the hungry. Free the mallocs
    9.8.2008 07:32 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Ehm, paralelni provadeni samotneho kodu.

    Dnesni procesory maji v sobe mnoho vypocetnich jednotek a proto kod:
    t1 = a;
    t2 = b;
    a = t2;
    b = t1;
    
    vyzaduje pouze dva tiky na rozdil od kodu:
    a ^= b;
    b ^= a;
    a ^= b;
    
    ktery vyzaduje VZDY tri tiky, protoze kazdy prikaz je zavisly na predchozim.

    Jinak staci to rozepsat na t = a; a = b; b = t;.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    9.8.2008 12:23 HS | skóre: 12
    Rozbalit Rozbalit vše Re: C bitwise a retezce
    Zalezi na delce retezce, treba ma tak kratke retezce, kterym sekvencni vypocty nevadi. Kazdopadne mas pravdu, ze pres pomocnou promenou je to jednoduchsi a prehlednejsi.`

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.