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

    [C/C++/assembly] valori binari

    Salve a tutti.
    Allora, io devo aprire un'immagine, anzi diciamo un file dove l'informazione che mi serve č lunga un byte. Allora ho deciso, dopo aver aperto il file con fopen (nomeFile,"rb"); di usare fgetc() per ottenere un char di lunghezza un byte. A questo punto perō mi blocco, nel senso che devo ottenere il valore numerico del mio byte. Ho provato facendo un cast esplicito, da char a float, ma mi restituisce sempre -1.
    Non so che fare, ho pensato che forse (non so per quale motivo) devo leggere i bit da destra verso sinistra, quindi dovrei rovesciare il byte. (mi danno poche info quindi devo arrangiarmi ) .

    Solo che di assembly non ci azecco molto. Qualcuno puō indicarmi la rotta?
    Grazie Mille
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  2. #2
    stai lavorando in c, quindi se il char contiene gia' il tuo dato,
    ci puoi lavorare sopra come fosse un integer;
    con printf("%d",dato); puoi stampare il valore contenuto all'interno
    che sara' da 0 a 255.

  3. #3
    Pensavo anch'io, ma come dicevo il valore che mi viene restituito č sempre -1, e non capisco come mai.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  4. #4
    -1 e' lo stato d' errore, evidentemente sbagli qualcosa nell fgetc()

  5. #5
    ma tu fai una cosa del tipo:

    codice:
    int a;
    FILE *pippo;
    pippo=fopen("nomefile","r");
    a=fgetc(pippo); 
    printf("%d",a);

    ???

  6. #6
    faccio una cosa di questo tipo:
    apro in binario,

    int a;
    FILE *pippo;
    pippo=fopen("nomefile","rb");
    a=fgetc(pippo);
    printf("%d",a);

    Cmq proprio adesso stavo provando ad usare fread() che mi restituisce un valore negativo , ma diverso da -1. (adesso mi da -52)
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #7
    prova ad non aprirlo in binario e ti dovrebbe funzionare..

  8. #8
    grrr, non cambia nulla, mi restituisce sempre -52.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    Originariamente inviato da AnĒkin
    faccio una cosa di questo tipo:
    apro in binario,

    int a;
    FILE *pippo;
    pippo=fopen("nomefile","rb");
    a=fgetc(pippo);
    printf("%d",a);

    Cmq proprio adesso stavo provando ad usare fread() che mi restituisce un valore negativo , ma diverso da -1. (adesso mi da -52)
    la fread la fai cosi' vero :
    fread(&a,1,1,pippo);

  10. #10
    Azz, risolto! in realtā io dichiaravo una variabile
    char ch;
    int/float h;
    e scrivevo
    h = (int/float)ch;

    Solo che dovevo dichiarare ch come unsigned char !!!!!

    Grazie cmq CIaoo
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

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.