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 02:11 | Nová verze

    Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.

    |🇵🇸 | Komentářů: 0
    včera 16:00 | IT novinky

    Řemínky pro Apple Watch, bezdrátová sluchátka nebo nabíjecí adaptéry. Takovou nabídku našli v uplynulých dnech příslušníci Celního úřadu v Liberci při kontrole kamenného obchodu na Náchodsku. Celkem zde zadrželi 3 035 kusů zboží podezřelého z porušování práv duševního vlastnictví. Pokud by se jednalo o originální výrobky, jejich hodnota by podle odhadu přesáhla 10,8 milionu korun.

    Ladislav Hagara | Komentářů: 8
    včera 14:11 | Nová verze

    Byla vydána verze 31.1 textového editoru GNU Emacs. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 4
    včera 12:22 | Nová verze

    Webový prohlížeč Waterfox (Wikipedie), fork Firefoxu, byl vydán ve verzi 6.7.0. Postaven je na jádru Gecko ESR 153.

    Ladislav Hagara | Komentářů: 0
    včera 11:22 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.17.0. Podrobný přehled novinek v changelogu. Přidána byla základní podpora gamepadů. Opraveno bylo několik zranitelností. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

    Ladislav Hagara | Komentářů: 0
    včera 11:00 | IT novinky

    Americká technologická společnost Apple loni v Irsku na daních zaplatila 17 miliard dolarů (zhruba 350 miliard Kč). To představovalo 40 procent celkové částky, kterou firma odvedla na dani z příjmů po celém světě. Vyplývá to z účetních výkazů podniku. Platbu výrazně zvýšilo rozhodnutí Soudního dvora EU z roku 2024, podle něhož měl Apple doplatit Irsku na daních 13 miliard eur (313 miliard Kč).

    Ladislav Hagara | Komentářů: 0
    včera 09:55 | Zajímavý projekt

    CrossPoint Reader je open-source alternativní firmware pro menší, levné čtečky, vybavené cca čtyřpalcovým e-ink displejem. Zahrnuje aplikaci pro čtení e-knih a webový server pro konfiguraci a přenos souborů po síti. Verze 1.0 byla vydána v únoru 2026. Recenze současné verze 1.5 vyšla na Linux Weekly News.

    |🇵🇸 | Komentářů: 0
    21.8. 05:00 | Nová verze

    Byla vydána verze 1.98.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
    21.8. 04:22 | Nová verze

    Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).

    Ladislav Hagara | Komentářů: 0
    20.8. 19:11 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (29%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2493 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: [C] program na prevod dec -> hex

    martin() avatar 11.9.2009 20:34 martin() | skóre: 6 | Prievidza / Bratislava
    [C] program na prevod dec -> hex
    Přečteno: 2195×
    Dobry den, snazim sa napisat program, ktory ako vstup zoberie integer a na obrazovku vypise hex. Zatial som vyprodukoval toto:
    #include <stdio.h>
    
    char *string_hexnum(int number)
    {
    	char mask[] = "0123456789ABCDEF";
    	char str[12];
    	int i = 10;
    
    	str[11] = '\0';
    
    	if (number < 0){
    		puts("ERROR: number is negative\n");
    		return 0;
    	}
    
    	if (number == 0){
    		str[i--] = '0';
    	} else {
    		while (number != 0){
    			str[i--] = mask[number % 16];
    			number /= 16;
    		}
    	}
    	str[i--] = 'x';
    	str[i] = '0';
    
    	return str+i;
    }
    
    
    void print_hexnum(int number)
    {
    	char* pnt;
    	puts("test");
    	pnt = string_hexnum(number);
    	puts(pnt);
    	puts("test");
    }
    
    
    int main(void)
    {
    	print_hexnum(888);
    
    	return 0;
    }
    
    Problemom je, ze sa to cislo nevypise, zostane prazdny riadok. Nechcem na to pouzit ziadnu funkciu z kniznice. Ked som to debuggoval, tak som videl, ze do pamete sa vsetko uklada ako ma. pnt ukazuje na prvy znak retazca - '0'.

    Dakujem.
    Hovor múdro, nepriateľ načúva ! -- S. J. Lec --

    Řešení dotazu:


    Odpovědi

    Řešení 1× (martin() (tazatel))
    11.9.2009 20:51 ams
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex

    Chyba je v tom, ze vracite odkaz na lokalni promennou str. Bud pouzijte malloc/free, anebo zmente deklaraci char str[12] na static char str[12]. Pak to ovsem nebude fungovat v multithread programech, ale to, tusim, ani nechcete :)

    Řešení 1× (martin() (tazatel))
    11.9.2009 20:53 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    return str+i;
    Nemůžete vracet ukazatel na lokální proměnnou - jakékoliv další volání funkce zásobník přepíše. V lepším případě to nebude fungovat, v horším případě to upadne.
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    martin() avatar 11.9.2009 21:06 martin() | skóre: 6 | Prievidza / Bratislava
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Dakujem za reakcie, zas som sa naucil nieco nove ;-)

    Eclipse mi vyhodil warning, ze vraciam adresu lokalnej premennej, ale uspesne som to ignoroval.

    Este raz dakujem.
    Hovor múdro, nepriateľ načúva ! -- S. J. Lec --
    Pavel Stárek avatar 11.9.2009 21:32 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    To byla nějaká školní úloha se zákazem používat knihovní funkce a funkce pro formátování výstupu? Mě z toho zadání vyšlo toto:
    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char *argv[]) {
      unsigned long iCislo;
      
      if (argc > 1) {
        iCislo = atoi(argv[1]);
        printf("Cislo %s je hexa: 0x%X\n", argv[1], iCislo);
        return(0);
      }
      printf("Malo parametru!\n");
      return(1);
    } 
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    martin() avatar 11.9.2009 22:00 martin() | skóre: 6 | Prievidza / Bratislava
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Nie. Povedal som si, ze naprogramujem funkciu, ktora bude vypisovat cisla v hex. So skolou to nemalo nic spolocne.
    Hovor múdro, nepriateľ načúva ! -- S. J. Lec --
    14.9.2009 13:49 l4m4
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Rozhodl-li ses takovou funkci naprogramovat, tak ji naprogramuj a nenech ji za sebe programovat jiné.

    Pokud takovou funkci pouze potřebuješ, tak bych vzhledem k tomu, že vstup decimálních čísel a výpis hexadecimálních jsou operace, u kterých lze čekat, že už je někdo naprogramoval před dvaceti lety a dal do standardní knihovny, čekal spíš otázku na to, kterou knihovní funkci k tomu použít než jak to naprogramovat.
    15.9.2009 08:27 dark
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex

    Sak ji naprogramoval a nefungovala mu, tak se zeptal, nic spatneho na tom nevidim.

    15.9.2009 09:35 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Však l4m4 jen shrnul a potvrdil co bylo už v zásadě řečeno.
    14.9.2009 12:05 dark
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex

    Nevim, jestli je 2x rozumne pouzit %X na 'unsigned long'.

    14.9.2009 13:52 l4m4
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Když už používáš ten long jako typ dat, tak používej odpovídající funkce...
    printf("%lx\n", atol(argv[1]));
             ^         ^
    
    A return není funkce.
    Pavel Stárek avatar 15.9.2009 16:49 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: [C] program na prevod dec -> hex
    Nojo, nojo, to byl jen takový rychlý pokus. Spíš pro ukázání, že takovéto funkce není třeba programovat, neboli netřeba vynalézat kolo. :-) Já céčko moc nepoužívám, já raději Python.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.

    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.