Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Numero decimale -> Numero esadecimale; Numero esadecimale -> Numero decimale
Forum - C# / VB.NET - Numero decimale -> Numero esadecimale; Numero esadecimale -> Numero decimale

Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 18:51
Giovedì, 25/03/2010
per il primo esiste la funzione hex(n), ma se dovessi farlo al contrario, come faccio?

grazie. :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:45
Giovedì, 25/03/2010
Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2.         Dim s As String
  3.  
  4.         ' Da hex a dec
  5.         s = "A000"
  6.         i = Convert.ToInt32(s, 16)
  7.  
  8.         ' Da dec a hex
  9.         i = 65
  10.         s = Convert.ToString(i, 16)



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 21:51
Giovedì, 25/03/2010
        Dim i As Integer
        Dim s As String

        ' Da hex a dec
        s = "A000"
        i = Convert.ToInt32(s, 16)

questa parte era quella che mi interessava di più, ma non funziona se inserisci i valori con le lettere (le prime 6).

Inserendo ad esempio a, dovrebbe dare come risultato 10

o no?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:54
Giovedì, 25/03/2010
Sinceramente, non ho capito il problema ... quale codice hai provato?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 22:29
Giovedì, 25/03/2010
nulla di stranissimo (almeno credo, e con tutta la mia ignoranza.. :D)

esattamente questo:

Dim i as integer
Dim s as string = Val(textbox1.text)

i = convert.toint32(s,16)

textbox2.text=i

un form, un pulsante e due textbox...

inserisco nel primo il valore esadecimale da convertire, clicco, e sul secondo dovrebbe comparire la conversione del valore in decimale.

Se inserisco 15 mi da 21 (ma dovrebbe essere 22, conta anche lo 0 come primo numero o sbaglio?)

se inserisco 1a mi da 1 (ma dovrebbe essere 27)

se inserisco a1 mi da 0 addirittura... :(

la numerazione esadecimale non funziona così:

0-1-2-3-4-5-6-7-8-9-a-b-c-d-e-f-10-11-12-13-14-15-16-17-18-19-1a-1b-1c-1d-1e-1f-20-21-... ect ect ???

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:47
Giovedì, 25/03/2010
Ma cosa c'entra la Val ? Perchè la usi ? Sai a cosa serve ?

Il codice dovrebbe essere fatto solo da questa linea

Codice sorgente - presumibilmente Plain Text

  1. TextBox2.Text = Convert.ToInt32(TextBox1.Text, 16).ToString()




Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 23:09
Giovedì, 25/03/2010
perchè ho usato val?

per appunto l'ingnoranza di cui sopra :(
(ho corretto e messo tra gli appunti, grazie :) )

detto questo però ho provato e non capisco perchè mi da come risultato un dato con un unità in meno!

cioè, ff dovrebbe essere 256 (16*16), invece da 255.

perchè?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:15
Giovedì, 25/03/2010
Testo quotato

Postato originariamente da cesco_fran:


cioè, ff dovrebbe essere 256 (16*16), invece da 255.

perchè?



ff vale 255 ... rifai i conti ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 23:24
Giovedì, 25/03/2010
vero, hai ragione!

100 fa 256!

grazie. :)

PM Quote