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 23:22 | Komunita

    Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.

    Ladislav Hagara | Komentářů: 0
    dnes 22:33 | Nová verze

    Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 11:33 | Zajímavý článek

    Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.

    |🇵🇸 | Komentářů: 1
    dnes 11:22 | IT novinky

    Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a

    … více »
    Ladislav Hagara | Komentářů: 8
    včera 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 5
    včera 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

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

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    včera 13:11 | IT novinky

    Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.

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

    Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v

    … více »
    Ladislav Hagara | Komentářů: 32
    včera 01:55 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1159 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    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: 2046×
    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.