zoukankan      html  css  js  c++  java
  • SQL十进制和十六进制相互转换

    CREATE FUNCTION ufn_ConvertInt2Hex ( @Num BIGINT )
    RETURNS VARCHAR(500)
    AS
    BEGIN
    /**************************************
    -- 功能:十进制转十六进制
    -- 作者:GarsonZhang
    -- 时间:2016年5月28日13:26:55
    -- 测试:
    PRINT dbo.ufn_ConvertInt2Hex(50)
    **************************************/
    
    DECLARE @Result VARCHAR(500)
    SET @Result = ''
    WHILE ( @Num > 0 )
    BEGIN
    SET @Result = SUBSTRING('0123456789ABCDEF', @Num % 16 + 1, 1)
    + @Result
    SET @Num = @Num / 16
    END
    RETURN @Result
    END
    GO
    
    CREATE FUNCTION ufn_ConvertHex2Int ( @HexString VARCHAR(16) )
    RETURNS BIGINT
    AS /**************************************
    -- 功能:十六进制转十进制
    -- 作者:GarsonZhang
    -- 时间:2016年5月28日13:30:24
    -- 测试:
    PRINT dbo.ufn_ConvertInt2Hex(50)
    **************************************/
    BEGIN 
    DECLARE @Result BIGINT
    
    DECLARE @i INT ,
    @len INT
    
    DECLARE @power BIGINT
    SET @power = 16
    
    SELECT @i = 0 ,
    @Result = 0 ,
    @HexString = RTRIM(LTRIM(UPPER(@HexString)))
    
    SET @len = LEN(@HexString) 
    
    IF ( @len = 16 )
    BEGIN 
    IF ( ASCII(SUBSTRING(@HexString, 1, 1)) > 55 )
    BEGIN 
    -- RaisError('超出数据运算范围', 1, 16) 
    RETURN @Result
    END 
    END 
    ------------------------------------------------------- 
    WHILE ( @i < @len )
    BEGIN 
    IF ( ( SUBSTRING(@HexString, @len - @i, 1) NOT BETWEEN '0' AND '9' )
    AND ( SUBSTRING(@HexString, @len - @i, 1) NOT BETWEEN 'A' AND 'F' )
    )
    BEGIN 
    SET @Result = 0
    BREAK;
    END 
    ---------------------------------------- 
    
    SET @Result = @Result + ( CHARINDEX(SUBSTRING(@HexString,
    @len - @i, 1),
    '0123456789ABCDEF') - 1 )
    * CAST(POWER(@power, @i) AS BIGINT)
    SET @i = @i + 1 
    END 
    ---------------------------------------------- 
    RETURN @Result 
    END
  • 相关阅读:
    遗传学详解及Matlab算法实现
    (转)非常好的理解遗传算法的例子
    Halcon学习笔记之支持向量机(二)
    Hough 变换
    主元分析PCA理论分析及应用
    Retinex图像增强算法
    Halcon学习笔记之支持向量机(一)
    阿里云OSS安装使用问题
    JS中双击和单击事件冲突解决
    JavaScript正则表达式应用---replace()
  • 原文地址:https://www.cnblogs.com/laopo/p/11141718.html
Copyright © 2011-2022 走看看