10进制整数转换为2~36任意进制数存储过程

原创 2005年04月25日 14:12:00

/* 
 ========================================================
 Procedure: usp_ConvertIntTo
 Description: Convert a number to 1~36
 Creation Date: 2005-4-25
 Author:  Frank Xie
 ========================================================
 Revision History
 ========================================================
 Rev Date  Description
 ========================================================
 1 2005-4-25 Generated by Frank Xie
 ========================================================
 
DECLARE @DD VARCHAR(50)
EXEC usp_ConvertIntTo 55,36,@DD OUTPUT
PRINT @DD
*/

CREATE PROCEDURE usp_ConvertIntTo
(
 @aNumber INT = 0,  --需转换的10进制数
 @convertType INT = 10,  --需要转变为的进制
 @result VARCHAR(50) OUTPUT --返回的转变后的值
)
AS
BEGIN
 DECLARE @List VARCHAR(36)
 DECLARE @yushu INT
 DECLARE @shang INT

 IF @convertType > 36
 BEGIN
  RAISERROR ('@convertType must less then 36', 16, 1)
  return -1
 END
 ELSE
 BEGIN
  IF @convertType < 1
  BEGIN
   RAISERROR ('@convertType must lager then 1', 16, 1)
   return -1
  END
 END
  
 
 IF @result IS NULL
  SET @result = ''

 SET @List = '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

 SET @yushu = @aNumber % @convertType

 IF @yushu > 0
  SET @result = SubString(@List,@yushu,1) + @result
 ELSE
 BEGIN
  IF @result <> '0'
   SET @result = '0' + @result
 END

 SET @shang = @aNumber / @convertType

 IF @shang >= @convertType
 BEGIN
  DECLARE @RES INT
  EXEC @RES = usp_ConvertIntTo @shang,@convertType,@result OUTPUT

  IF @RES = -1
   RETURN -1
 END
 ELSE
  SET @result = SubString(@List,@shang,1) + @result

 return 0
END

复习C语言系列一:10进制整数转2至32任意进制数

#pragma warning(disable:4996) #include #include #include #include #include #include     #inclu...
  • wskz876
  • wskz876
  • 2013年11月17日 06:30
  • 1193

2到36进制数转换为10进制(C语言)

Input:输入一个进制数(从2到36)和一个数字(用串表示,超出9的分别用A、B、C...、Z表示) output:输出该数字所表示的10进制数 sample: 输入:4,123 输出:27...
  • bnuside
  • bnuside
  • 2011年11月01日 21:43
  • 1871

无符号十进制整数转换成任意进制数

题目:将一个无符号整数转换为任意 d 进制数( 2 ≤ d ≤ 16 )。 思路:先举个例子。十进制100怎么转换为二进制呢? 记住:d进制的数就是0~(d-1)。 一般都是用辗转相除法(应该是叫这...

Java 任意进制整数转换

  • 2016年03月12日 19:27
  • 1KB
  • 下载

【牛客网】进制转换(2~36)

进制转换,本代码中M表示原始进制,N表示目标进制,大数处理的C++实现,M和N均[2,36]...

N到M进制转换(2<=N,M<=36)

经常遇到不同进制之间的转换,下面办法主要是讨论2到36之间进制转换问题。其实进制转换办法就是辗转相除,比如:如果我想把15进制转换成17进制。 首先是将15进制转换成10进制,然后再将10进制的值转...
  • hxingd
  • hxingd
  • 2012年02月22日 20:10
  • 6

itoa()函数,10进制转换到(2~36)进制

先看下itoa()的函数说明吧: 功 能:把一整数转换为字符串   用 法:char *itoa(int value, char *string, int radix);    详细解释:ito...

2-36进制的 两个数相加

2-36进制的 两个数相加 数的长度可以无限制 问题来源:华为编程大赛 二师弟的星际加法 输入: N 进制数 str1 第一个数字字符串 str2 第二个数字字符串 输出: str1和str2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10进制整数转换为2~36任意进制数存储过程
举报原因:
原因补充:

(最多只允许输入30个字)