Converts data from hex to binary and vise-versa.
2007-10-02 (first published: 2002-06-20)
15,449 reads
Converts data from hex to binary and vise-versa.
CREATE FUNCTION dbo.cHex2Bin ( @hex varchar(50) ) RETURNS varchar(200) AS BEGIN set @hex=replace (@hex,'1','0001') set @hex=replace (@hex,'2','0010') set @hex=replace (@hex,'3','0011') set @hex=replace (@hex,'4','0100') set @hex=replace (@hex,'5','0101') set @hex=replace (@hex,'6','0110') set @hex=replace (@hex,'7','0111') set @hex=replace (@hex,'8','1000') set @hex=replace (@hex,'9','1001') set @hex=replace (@hex,'A','1010') set @hex=replace (@hex,'B','1011') set @hex=replace (@hex,'C','1100') set @hex=replace (@hex,'D','1101') set @hex=replace (@hex,'E','1110') set @hex=replace (@hex,'F','1111') --get rif od leading 0 while charindex('x0','x'+@hex)>0 set @hex=replace ('x'+@hex,'x0','') RETURN @hex END GO --Convert from binary to hexadecimal SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE FUNCTION cBin2Hex ( @Hex varchar(100) ) RETURNS varchar(50) AS BEGIN DECLARE @bin as varchar(50) select @bin='' set @Hex='000'+@Hex while len(@HEx)>3 begin select @bin= case right(@hex,4) when '1111' then 'F' when '1110' then 'E' when '1101' then 'D' when '1100' then 'C' when '1011' then 'B' when '1010' then 'A' when '1001' then '9' when '1000' then '8' when '0111' then '7' when '0110' then '6' when '0101' then '5' when '0100' then '4' when '0011' then '3' when '0010' then '2' when '0001' then '1' when '0000' then '0' end +@bin set @hex=left(@hex,Len(@hex)-4) end RETURN @bin END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO