SQLUSA

Microsoft SQL Server 2005 Best Practices

How to convert numbers into hexadecimal?

 

Execute the following script in Query Editor to create a hexadecimal translator:


USE AdventureWorks

CREATE FUNCTION fnHexadecimal (@Input varbinary(256))
RETURNS varchar(256)
AS
BEGIN
DECLARE @HexDigits char(16), @Result varchar(255), @i int, @InputLength int
DECLARE @RunningI int, @LeftHalf int, @RightHalf int
SET @Result = '0x'
SET @i = 1
SET @InputLength = DATALENGTH (@Input)
SET @HexDigits = '0123456789ABCDEF'
WHILE (@i <= @InputLength)
BEGIN
SET @RunningI = CONVERT(int, SUBSTRING(@Input,@i,1))
SET @LeftHalf = FLOOR(@RunningI/16)
SET @RightHalf = @RunningI - (@LeftHalf*16)
SET @Result = @Result +
SUBSTRING(@HexDigits, @LeftHalf+1, 1) +
SUBSTRING(@HexDigits, @RightHalf+1, 1)
SET @i = @i + 1
END
return @Result
END
GO

SELECT HEX = dbo.fnHexadecimal(255)

SELECT HEX = dbo.fnHexadecimal(4096)

SELECT HEX = dbo.fnHexadecimal(99999999999999999999999999999999999999)


 

SQLUSA - The Best SQL Server 2005 Training in the World
 
 
SQLUSA.com Home Page