salve
come posso convertire un valore binario (es: campo mysql blob) nell'equivalente esadecimale?
salve
come posso convertire un valore binario (es: campo mysql blob) nell'equivalente esadecimale?
tramite google ho trovato alcuni algoritmi intermedi che convertono stringhe binarie in esadecmali ma mi è stato detto che non sono adatti per quel che mi serve...
avrei bisogno di una funzione che funzionasse più o meno così
Codice PHP:Bin2Hex(RS("campo_mysql_blob")) => 0xABABABABABABABABABAABABABA
ho cercato un po' su google. sono convinto che qualcosa ci sia ma sinceramente (in quei 20 secondi che ci ho speso) non ho trovato nulla
la soluzione più veloce è prendere uno script che fa questo lavoro in un altro linguaggio e tradurlo. con un po' di attenzione non è una cosa molto difficile.
ho provato a cercare l'equivalente php ed ho scoperto che esiste una funzione nativa "bin2hex"![]()
solo che non ho trovato come fa la convesione proprio perchè è nativa...
adesso mi verrebbe un attimino difficile riconvertire tutti i miei lavori in php solo per usare questa funzione![]()
materialmente una funzione di questo genere (che non deve funzionare con rappresentazioni ascii di dati binari) cosa fa?
non esiste un algoritmo generico? (che continuo a non trovare)
La tabellina non ti aiuta?
http://it.wikipedia.org/wiki/Convers...i_potenze_di_2
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Originariamente inviato da Roby_72
La tabellina non ti aiuta?![]()
cmq...
il mio problema è trovare un metodo standard per conservare su file i dati di un campo blob
li potrei convertire anche in ottale decimale cirillico ma mi serve "IL" sistema, quello giusto ed utilizzato da tutti
ci arrivo da solo che un numero può essere scritto sia in esadecimale che in binario, però io chiedevo qualcosa di diverso
la regola che uso io per convertire è
dividi in quartine (partendo da destra)
secondo la tabella di conversione decimale/binario (che dopo un po' impari a memoria) trasformi ogni quartina binaria in un numero esadecimale
il numero che ti viene fuori alla fine è il tuo convertito
fanne un'algoritmo.
quelle sono le azioni che deve fare
ovviamente non sarà ottimizzato come algoritmo ma magari pensandoci un po' su viene in mente un sistema che per un computer è più efficente.
(io da malato ne ho pensato uno con le regexp... sono pazzo :rollo
---
oppure ti fai una bella DLL che sarà sicuramente più veloce ed efficente e tutti a casa.
Il punto di partenza è sempre quella benedetta tabellina.
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
inevitabile... ^^Originariamente inviato da Roby_72
Il punto di partenza è sempre quella benedetta tabellina.
Roby
Ho pero' la sensazione che tu non stia parlando di stringhe esprimenti un valore binario bensi' una stringa che puo' contenere un qualunque byte da 0 a 255... come gli eseguibili o le immagini.codice:<% function Hex2Bin(str) Hex2Bin="" for h = len(str) to 1 step -1 n = InStr("0123456789ABCDEF", Mid(str, h, 1)) - 1 for k = 1 to 4 Hex2Bin = Cstr(n mod 2) & Hex2Bin n = int(n / 2) next next end function function Bin2Hex(str) Bin2Hex="" n = 1 b = 0 for h = len(str) to 1 step -1 b = b + cint(Mid(str, h, 1)) * n n = n * 2 if n > 8 then n = 1 Bin2Hex = Mid("0123456789ABCDEF", b + 1, 1) & Bin2Hex b = 0 end if next if b > 0 then Bin2Hex = Mid("0123456789ABCDEF", b + 1, 1) & Bin2Hex end if end function %>
In questo caso ti consiglio la piu' standard e diffusa codifica code64 (per intenderci quella usata per gli allegati delle mail).
ciao
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum