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

    Covertire dec -->hex e vice versa etc etc..

    Ho provato a fare una ricerca veloce nel forum PHP ma non ho trovato risultati validi..

    Avrei bisogno di uno script php o meglio di function che possa convertire un determinato valore passatogli da decimale a hex e magari vice versa..

    In javascript uso questo codice :

    codice:
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var v_esa="";
    var v_oct="";
    var v_dec=0;
    var v_bin="";
    var ii=0;
    var rr=0;
    var tt=0;
    var hd=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
    
    function updall(qq) {
    
    v_esa="";
    
    for (tt=qq;tt>0;tt=tt) {
    rr=Math.floor(tt/16);
    ii=tt-16*rr;
    v_esa=hd[ii]+""+v_esa;
    tt=rr;
    };
    
    v_dec=qq;
    v_oct="";
    
    for(tt=qq;tt>0;tt=tt) {
    
    rr=Math.floor(tt/8);
    
    ii=tt-8*rr;
    v_oct=ii+""+v_oct;tt=rr;
    };
    
    v_bin="";
    
    for ( tt=qq;tt>0;tt=tt) { 
    rr=Math.floor(tt/2);
    ii=tt-2*rr;
    v_bin=ii+""+v_bin;
    tt=rr;
    };
    
    document.the.esa.value=v_esa;
    document.the.dec.value=v_dec;
    document.the.oct.value=v_oct;
    document.the.bin.value=v_bin; 
    };
    
    function dedec(dd) {
    v_dec=document.the.dec.value;
    updall(v_dec);
    };
    
    function deesa(dd){
    v_esa=document.the.esa.value;
    v_esa=v_esa.toUpperCase();
    v_dec=0;
    
    for(tt=0;tt<v_esa.length;tt++) {
    rr=v_esa.charAt(tt);
    if (rr=="F"){
    ii=15;
    } else { 
    if (rr=="E"){
    ii=14;
    } else { 
    if (rr=="D"){
    ii=13;
    }else{
    if (rr=="C"){
    ii=12;
    }else{
    if (rr=="B"){
    ii=11;
    }else{
    if (rr=="A"){
    ii=10;
    }else{
    ii=Math.floor(rr);
    };
    };
    };
    };
    };
    };
    v_dec=16*v_dec+ii;
    };
    updall(v_dec);
    };
    
    function deoct(dd){
    v_oct=document.the.oct.value;
    v_dec=0;
    for(tt=0;tt<v_oct.length;tt++){
    rr=v_oct.charAt(tt);
    ii=Math.floor(rr);
    v_dec=8*v_dec+ii;
    };
    updall(v_dec);
    };
    
    function debin(dd){
    v_bin=document.the.bin.value;v_dec=0;
    for(tt=0;tt<v_bin.length;tt++){
    rr=v_bin.charAt(tt);
    ii=Math.floor(rr);
    v_dec=2*v_dec+ii;
    };
    updall(v_dec);
    };
    //-->
    </SCRIPT>
    relativo ad un form per la conversione di un dato in :

    Valore ESADECIMALE:
    (cifre comprese tra 0 e F)

    Valore DECIMALE:
    (cifre comprese tra 0 e 9)

    Valore OTTALE:
    (cifre comprese tra 0 e 7)

    Valore BINARIO:
    (usa solo solo 0 ed 1)
    ma volevo sapere se era possibile ottenere lo stesso risultato con delle function php da richiamare quando necessario?

    Al max sapere i rispettivi comandi php che equivalgono al javascript ( Math.floor , charAt ).. cosi da convertire questo script in php..

    se non erro

    charAt --> equivale in php a --> strpos
    toUpperCase --> equivale in php a --> strtoupper
    Math.floor --> equivale in php a --> floor($numero)
    x.length --> equivale in php a --> strlen($x)
    Giusto?

    Grazie e saluti

    In God We Trust

  2. #2

  3. #3
    thank's :P
    In God We Trust

  4. #4
    Dimenticavo.. usando dechex ho un problemino ad esempio

    dechex(3401) mi restituisce d49

    ma io avrei bisogno di paddare con uno 0 i valori hex che hanno una sola cifra

    quindi

    dechex(3401) dovrebbe restituirmi 0d49

    possibile?

    ciao
    In God We Trust

  5. #5
    ho provato in questo modo ma non so se sia corretto anche se il risultato finale è 0d49..

    codice:
    function convers($decim){
    if ( !(strlen(dechex($decim)) % 2 == 0))    $decimp = "0".dechex($decim);
    else 							      $decimp = dechex($decim);
    return $decimp;
    }
    
    echo convers("3401");
    risultato

    04d9

    che ne pensate?

    Saluti
    In God We Trust

  6. #6
    ma c'è un motivo per cui hai bisogno di 4 char nell'Esadecimale?

    Perché se è un buon motivo, ti conviene mandare il tuo codice direttamente agli sviluppatori PHP, dato che cercano sempre nuove modifiche da fare al codice (se hanno senso ovviamente)

  7. #7
    Ciao , si purtroppo ha senso, ad esempio nel mio caso quando gestisco codici per delle liste di canali satellitari frequenze etc essi lavorano con codici hex paddati con 0 ove necessario...

    ma lo stesso ho riscontrato in diverse altre applicazioni...

    grazie di tutto..

    Saluti
    In God We Trust

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.