Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-06-2007, 13:01   #1
buddace
Member
 
Iscritto dal: Nov 2002
Messaggi: 257
[c] puntatori astringa

domanda molto semplice.
Visto che nel compilatore che sto usando non è implementata la funzione itoa()
ho pensato bene di scriverla.

Codice:
char* bitoa(unsigned int number)
{

    char string[N];
    unsigned int i;
    
    for(i=N-1;i>0;i--)
       {string[i]=(number%2)+'0';
        number=number/2;}
    return string;
    
    
}

Se faccio una chiamata a questa funzione di questo tipo
printf("%s",itoa(numero));
con numero unsigned int vengono fuori delle porcherie, dove sbaglio ?
__________________
WebMaster di http://www.dccworld.coml'unico sito italiano dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.
buddace è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 13:15   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da buddace Guarda i messaggi
Se faccio una chiamata a questa funzione di questo tipo
printf("%s",itoa(numero));
con numero unsigned int vengono fuori delle porcherie, dove sbaglio ?
Quando questa tua funzione termina, le variabili locali (come l'array 'string') spariscono. Tra l'altro .... non ti basta usare %d e passare direttamente il numero alla printf??
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 13:26   #3
buddace
Member
 
Iscritto dal: Nov 2002
Messaggi: 257
Devo stampare il decimale in binario.
__________________
WebMaster di http://www.dccworld.coml'unico sito italiano dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.
buddace è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 13:32   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da buddace Guarda i messaggi
Devo stampare il decimale in binario.
Ah, sì, non avevo letto bene il tuo codice, visto che poi sotto parlavi di itoa.

Vedi in <questo> thread un mio esempio.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 13:56   #5
labrosan
Junior Member
 
Iscritto dal: Apr 2007
Messaggi: 27
devi dichiarare string come puntatore e allocare lo spazio necessario alla stringa

char *string;

string=(char*)malloc(N*sizeof(char));

...elaborazione...

return string;

Ciao
labrosan è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 14:06   #6
labrosan
Junior Member
 
Iscritto dal: Apr 2007
Messaggi: 27
Esempio di codice:
Codice:
#include <stdio.h>
#include <stdlib.h>

char* bitoa(unsigned int number);

int main ( void )
{
    unsigned int numero=100;
    
    printf("%d --> %s \n",numero,bitoa(numero)); 
    system("pause");  
    return 0;    
}


char* bitoa(unsigned int number)
{  char *string;
    unsigned int i;
    unsigned int temp=number;
    int len=0;
    
    while (temp)
    {   temp/=2;          // calcolo quanto sarà lunga la string
        len++;  } 
    
    string=(char*)malloc(len*sizeof(char));        // alloco lo spazio necessario alla stringa
        
    for(i=0 ; i<len ; i++)
    { 
        string[i]=(number%2)+'0';      // conversione int-char 
        number=number/2;               // ottengo un numero al rovescio
        }
    
    string[i]='\0';                     // terminatore di stringa
    
    for ( i=0 ; i<len/2 ; i++ )         // raddrizzo la stringa
    {   
        temp=string[i];
        string[i]=string[len-1-i];
        string[len-1-i]=temp;
        }
        
    return string;        
}
labrosan è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 14:23   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da labrosan Guarda i messaggi
Codice:
    while (temp)
    {   temp/=2;          // calcolo quanto sarà lunga la string
        len++;  } 
    
    string=(char*)malloc(len*sizeof(char));        // alloco lo spazio necessario alla stringa
E lo spazio per il nullo finale? no?
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 09:55   #8
buddace
Member
 
Iscritto dal: Nov 2002
Messaggi: 257
Alla fine l'ho fatta cosi. Considerate che le mie stringhe sono sempre di 8 caratteri e per mie necessità se passo stringhe più corte devo allungarle ad 8.
Codice:
char* bitoa(unsigned int number,unsigned int lung,char end[])
{

    static char string[N];
    int i,y=0;
    
    //number <<= N-lung;
    for(i=N-1;i>=0;i--)
       {
        if(i<N-lung)
          {string[i]=end[y];
           y++;}
        else
            {string[i]=(number%2)+'0';
             number=number/2;}
        }
    
    return string;
}
__________________
WebMaster di http://www.dccworld.coml'unico sito italiano dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.
buddace è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
La stella S301 è così vici...
Chery accelera sulla robotica: Aimoga si...
Voigtländer Nokton 23mm e 35mm f/1....
Il Lunar Reconnaissance Orbiter della NA...
Prova a beffare il tribunale con un mess...
Pasticcio Freelander: usa l'immagine di ...
A New York apre la clinica del fondatore...
Control Resonant entra in fase Gold e ri...
HONOR Pad 20 Pro è ufficiale: un ottimo ...
Tesla Robotaxi sfonda dei dissuasori: il...
Call of Duty: Modern Warfare 4 presenta ...
Intel Arc più veloce fino al 5% s...
Il tuo ETF ha molta più NVIDIA di...
Il Fairphone Gen 6+ è ufficiale con un n...
Stellantis, il titolo crolla: alla borsa...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v