Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Linguaggio C

    Buona sera a tutti posto qui un pezzo di codice di cui non capisco la funzione:

    if(isdigit(*p))/*se è un numero*/
    {
    push(&stk,*p-48);
    }

    cioè se la memoria puntata da *P contiene un numero passa alla funzione push che inserisce in cima allo stack *P-48.
    Ma xk qsto -48??? cosa significa?? Sono disperata sto leggendo tutte le guide del C che trovo su interne ma niente =( spero in una vostra risposta.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: Linguaggio C

    Originariamente inviato da LadyGio23
    Ma xk qsto -48??? cosa significa?? Sono disperata sto leggendo tutte le guide del C che trovo su interne ma niente
    Quello non è un "numero" ma una "cifra" (e c'è differenza).

    E ogni cifra ha un valore ASCII (vedi http://www.oppo.it/tabelle/tabella_ascii.htm) che penso saprai cosa è.

    Il valore ASCII del carattere 0, ad esempio, è 48, mentre per la cifra 1 è 49 ... e così via fino alla cifra 9 che ha valore ASCII 57.

    Per convertire il valore ASCII nell'effettivo valore decimale della cifra, dovrai sottrarre dal valore ASCII proprio il 48. Così nel caso della cifra 0 avrai 48-48 -> 0 e così per le altre cifre.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    codice:
    if (isdigit(*p))  /*se è un numero*/
      push(&stk, *p - '0');
    Questo è ugualmente facile ed è indipendente dalla codifica, le cifre decimale sono sempre una dopo l'altra, dallo 0 al 9.
    effeffe

  4. #4
    Grazie mille siete stati esaustivi =)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.