Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 35
  1. #11

    Riassumo:

    Supponiamo che io dichiari due variabili:

    signed long A;
    unsigned short B;

    Assegno ad A il valore:

    A=0xD2;

    (vedilo come un intero decimale, tanto è la stessa cosa come ha detto skidx)

    poi avrò un casting:

    B = (unsigned short) A;

    Cosa ci sarà in B?

    B=D oppure B=2

    insomma in B ci saà la parte alta oppure la parte bassa di 210 in rappresentazione esadecimale o binaria che sia?

    Spero di essermi riuscita a spiegare.....
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

  2. #12
    [supersaibal]Originariamente inviato da FreeManX
    E gli e lo mantiente come esadecimale.. o gli e lo converte in decimalke???

    (sapevo di cannare.. e da poco che studio il c) [/supersaibal]
    Hai le idee un pò confuse. I valori salvati nelle variabili sono tutti conservati in binario, nella memoria, il computer non sa fare altrimenti.

    Assegnare un valore utilizzando una base piuttosto che un'altra è solo una comodità per il programmatore, non cambia nulla poi nel funzionamento.

  3. #13

    Re: Riassumo:

    [supersaibal]Originariamente inviato da dotty78
    insomma in B ci saà la parte alta oppure la parte bassa di 210 in rappresentazione esadecimale o binaria che sia?

    Spero di essermi riuscita a spiegare..... [/supersaibal]
    Secondo me nessuna delle 2, perchè il numero "signed" viene memorizzato in complemento a 2. Quindi dentro B avrai una informazione inutile a mio avviso.
    Comunque non sono sicurissimo, fai una prova no, che ci vuole?

  4. #14
    sono una testa dura.... ho bisogno prima di una spiegazione logica...
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

  5. #15

    Re: Riassumo:

    [supersaibal]Originariamente inviato da dotty78
    Supponiamo che io dichiari due variabili:

    signed long A;
    unsigned short B;

    Assegno ad A il valore:

    A=0xD2;

    (vedilo come un intero decimale, tanto è la stessa cosa come ha detto skidx)

    poi avrò un casting:

    B = (unsigned short) A;

    Cosa ci sarà in B?

    B=D oppure B=2

    insomma in B ci saà la parte alta oppure la parte bassa di 210 in rappresentazione esadecimale o binaria che sia?

    Spero di essermi riuscita a spiegare..... [/supersaibal]

    Se non canno di nuovo .... come ti dicevo il C effettua conversioni di tipo dal piu ballo al piu alto... percio tut dovresti ritrovarti sepre lo stesso numeri.....

    Pero non so sicuro ripeto il C e da poco che lo maneggio!


    skidx allora se io memorizzo in un int un numero in base esadecimale quando lo andro ad untilizzare avro un dato esadecimale?

  6. #16
    [supersaibal]Originariamente inviato da dotty78
    sono una testa dura.... ho bisogno prima di una spiegazione logica... [/supersaibal]
    Una spiegazione l'hai avuta:
    Dentro B avrai la parte bassa di un numero che però era espresso in complemento a 2, non in binario puro, quindi una informazione inutile.

    Per FreemanX, ti sfugge ancora qualcosa:
    un numero è sempre lo stesso, indipendentemente da come lo scrivi.

    Fare 00001010 - 00000010
    oppure 0x0A - 0x02
    oppure 10 - 2
    da sempre lo stesso risultato,
    cioè DUE!

    Poi lo puoi leggere come ti pare, ma sempre 2 sarà.

  7. #17
    Grazie per l'aiuto!

    Ora riporto un esempio per vedere se ho capito:

    un signed long è un numero espresso su 32 bit:

    quindi 210=>00000000 00000000 00000000 00000000 11010010

    ho inserito uno spazio dopo 8 bit per una questione di leggibilità.

    un unsigned short è un numero espresso su 16 bit (il range è come quello di int)

    consideriamo la parte bassa di 210: 00000000 11010010

    eseguo il complemento a 1: 11111111 00101101

    aggiungo 1: 11111111 00101110

    quindi il risultato sarà 0xFF2E


    Giusto o sbagliato?
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

  8. #18
    [supersaibal]Originariamente inviato da dotty78
    Giusto o sbagliato? [/supersaibal]
    Se la mia supposizione è esatta, sì, ma non ne sono certo, perchè non ricordo il funzionamento di quel tipo di type casting.
    Potrebbe essere una ipotesi plausibile, sì.

  9. #19
    Speriamo

    Grazie 1000.
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

  10. #20
    Utente di HTML.it L'avatar di alexmaz
    Registrato dal
    May 2001
    Messaggi
    977
    occhio che dipende sempre dalla macchina e dal compilatore C che stai usando...

    nel mio caso, su una macchina x86 e gcc un long è di 4 byte e uno short è di 2.

    Se assegni al long un valore che può stare nello short non hai problemi se invece assegni al long un valore troppo grande per lo short il cast fa "casino" e hai perdita di dati. Per esempio assegnando al long 66000 e facendo il cast all'unsigned short io ottengo 464 :gren:
    The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

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 © 2019 vBulletin Solutions, Inc. All rights reserved.