De Decimal ah HEX

04/01/2008 - 14:35 por ®EL MANGOSTA | Informe spam
Hola amigos,

Alguien sabe si existe alguna función que me convierta numeros de DEC a HEX ..

He buscado pero no encuentro ...

De antemano muchas gracias.

Mauricio Pérez
Santiago de Chile.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
05/01/2008 - 18:21 | Informe spam
Hola Carlos,

Que interesante el analisis que has hecho, me pregunto si Microsoft tambien
hara este tipo de comparaciones entre versiones.

En cuanto a la pregunta que me haces, no tengo la menor idea.

Saludos,
Alejandro Mesa

"Carlos M. Calvelo" wrote:

Hola Alejandro,

On 5 jan, 03:02, Alejandro Mesa
wrote:
>
> Tambien puedes usar una funcion, no documentada, que esta en la db master y
> se llama fn_varbintohexstr.
>

Interesante. Como lo son también estas pruebas que hice.

He redefinido la función Dec2Hex() de jcac para evitar la recursión.
Asi:

CREATE function Dec2Hex(@n bigint)
returns varchar(20)
as
begin
declare @r bigint, @s varchar(20)
set @s = ''
while @n <> 0
begin
set @r = @n % 16
set @n = @n / 16
if @r < 10
set @s = cast(@r as char(1)) + @s
else
set @s = char(55 + @r) + @s
end
return case @s when '' then '0' else @s end
end

Con esto he hecho las siguiente pruebas en SS 2000 y 2005 (express):

DECLARE @x VARBINARY(4)
DECLARE @i INT
DECLARE @j INT
DECLARE @s AS CHAR(20)

SET @i = 1000000
SET @x = CAST(@i AS VARBINARY(4))

SET @j = 0
WHILE @j < @i
BEGIN
SET @s = master.dbo.fn_varbintohexstr(@x)

SET @j = @j+1
END
select @s

O bien ejecuto dec2hex() o fn_bintohexstr() un millón de veces,
poniendo uno de los dos como comentario.

En mi laptop con SS 2000,

dec2hex(): 31 s
fn_varbintohexstr: 50 s

y con SS 2005,

dec2hex(): 46 s
fn_varbintohexstr: 129 s.

Me sorprenden dos cosas. dec2hex() es mucho mas eficiente que
fn_varbintohexstr() y SS 2005 es mucho mas lento que SS 2000.

Lo primero se entiende un poco si se le echa un vistazo a la
función fn_varbintohexsubstring() que utiliza fn_bintohexstr().
La diferencia entre SS2000 y SS2005 para dec2hex() es de
un factor 1,48 y para fn_varbintohexstr() 2,58. Y esto si que
me parece bastante sorprendente e incomprensible.
Por lo menos, la función dec2hex() es exactamente la misma!

Tendrá MS algún acuerdo con los fabricantes de hardware? :-)

Saludos,
Carlos

Respuesta Responder a este mensaje
#7 Carlos M. Calvelo
05/01/2008 - 18:52 | Informe spam
Hola Alejandro,

On 5 jan, 18:21, Alejandro Mesa
wrote:
Hola Carlos,

Que interesante el analisis que has hecho, me pregunto si Microsoft tambien
hara este tipo de comparaciones entre versiones.

En cuanto a la pregunta que me haces, no tengo la menor idea.




Bueno... era un pregunta con ironía (o si quieres sarcasmo).
No te preocupes; no iba dirida a ti en especial claro!

Pero también puede ser que mi instalación de SS2005 tenga
algo mal. Vete tu a saber. :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#8 Carlos M. Calvelo
05/01/2008 - 18:58 | Informe spam
no iba dirida a



'dirigida' !!!

Ufff! Como estoy!

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida