Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34

Discussione: Binario

  1. #1
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701

    Binario

    Come faccio ad ottenere il numero binario di un numero o di qualsiasi altra cosa? che base devo mettere in parseInt per ottenere, ad esempio da 15 come risultato 1111? è possibile? bisogna usare un altro comando?

  2. #2
    Ciao carissima!
    Non so cosa intendi con "numero binario di qualsiasi altra cosa".
    Ti posso mostrare l'algoritmo di conversione di base.
    Ora, non sono al corrente su eventuali metodi che flash suggerisce per convertire un numero da base 10 a base 2, quindi ti propongo il seguente codice:

    codice:
    stringaContenenteNumeroBinario = "";
    contatore = 0;
    daConvertire = 13;
    numero = new Array();
    while(daConvertire != 0)
    {
    	inseriscoCifra = daConvertire % 2; // come vedi ho impostato la base a due.
    	numero.push(inseriscoCifra);
    	daConvertire = parseInt(daConvertire / 2);
    	contatore++;
    }
    for(i = contatore; i >= 0; i--)
    {
    	stringaContenenteNumeroBinario += numero[i]; // Aggiorno la stringa
    }
    trace(stringaContenenteNumeroBinario);
    Il trace finale stampa la stringa contenente il numero convertito in binario.
    Non credo che flash preveda una classe di oggetti specifica per numeri binari...

    Spero di esserti stato d'aiuto! (magari negatyve ci mostrerà come al solito un metodo più semplice ed efficace )
    Ciao
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  3. #3
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    grazie

    volevo imparare come si usano gli operatori per lo spostamento bit a bit ma senza fare controlli sul codice binario non sapevo se quello che facevo aveva un senso

  4. #4
    Mi sono dimenticato di dirti che l'algoritmo che ti ho mostrato converte un numero intero. Per un numero 0 < x < 1 esiste un altro algoritmo. Se ti interessa fammelo sapere che te lo posto.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  5. #5
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    postalo

    sempre bene saperlo

  6. #6
    Molto più velocemente...

    a = 15
    trace(a.toString(2))

    (magari negatyve ci mostrerà come al solito un metodo più semplice ed efficace )

    Ops, non avevo letto...non dovevo postare...scusate l'intrusione... :quipy:

  7. #7
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    Originariamente inviato da Broly
    Molto più velocemente...

    a = 15
    trace(a.toString(2))
    ottimo e veloce grazie broly

    (magari negatyve ci mostrerà come al solito un metodo più semplice ed efficace )

    Ops, non avevo letto...non dovevo postare...scusate l'intrusione... :quipy:
    ma che polemicone

  8. #8
    Originariamente inviato da Stormy
    ma che polemicone
    Mi conosci
    E poi se non mancassi da secoli sul forum capiresti alla svelta perchè ogni tanto viene spontaneo rispondere a certe frasi :tongue:


  9. #9
    Questo è l'algoritmo:

    codice:
    function binarioNonIntero(base, daConvertire, cifreRappresentazione)
    {
    	stringaFinale = "";
    	// Determinazione dell'esponente:
    	esponente = 1;
    	tempPerEsponente = daConvertire;
    	while(parseInt(tempPerEsponente) == 0)
    	{
    		tempPerEsponente = base * tempPerEsponente;
    		esponente--;
    	}
    	// Determinazione cifre
    	cifreNumero = new array();
    	i = 0;
    	while(i != cifreRappresentazione)
    	{
    		cifreNumero.push(parseInt(daConvertire));
    		daConvertire = base * (daConvertire - parseInt(daConvertire));
    		i++;
    	}
    	for(z = i; z >= 0; z--)
    	{
    		stringaFinale += cifreNumero[z];
    	}
    	stringaFinale = stringaFinale.substr(1, cifreRappresentazione);
    	return "0." + stringaFinale + " * " + base + "(" + esponente + ")";
    }
    Quando richiami la funzione passi i seguenti parametri:

    base: La base nella quale vuoi convertire il numero.
    daConvertire: Il numero non intero tra 0 e 1 (non compresi ovviamente) che vuoi convertire.
    cifreRappresentazione: Il numero delle cifre che costituiscono il numero che voui veder rappresentate. Questo perchè a seconda del numero che vuoi convertire, la rappresentazione in base potrebbe risultare non finita... (per esempio 0.4 in base 2)

    Fai una prova così:
    codice:
    trace(binarioNonIntero(2, 0.4, 10));
    il risultato del trace:

    0.011001100 * 2(-1)

    Il (-1) indica l'esponente. (non sapevo come metterlo come apice! )
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  10. #10
    Utente di HTML.it L'avatar di Stormy
    Registrato dal
    Dec 2000
    Messaggi
    2,701
    ma dai! naighes non intendeva deprezzare nessuno

    secondo me stava mettendo le mani avanti, perchè capita spesso che tu sudi su uno script poi arriva un altro e posta uno script migliore e ci rimani un po' male, diciamo la verità, è stupido ma capita a tutti di sviluppare un certo grado di competizione

    con tutto che ripeto che è stupido perchè qui ci si viene per imparare per cui ben vengano suggerimenti su come fare meglio le cose

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