35进制的目的是防止0和O造成的视觉误差

BEGIN
    DECLARE m_StrHex35 VARCHAR(100); -- 返回35进制表示的结果
  DECLARE m_Remainder BIGINT; -- 余数
  DECLARE m_Base35 VARCHAR(1);

SET m_Remainder=0;
  SET m_StrHex35='';
 
  WHILE p_Hex10>=35 DO
        SET m_Remainder=p_Hex10%35;
        SET p_Hex10=(p_Hex10-m_Remainder)/35;

SET m_Base35=SUBSTRING('0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ',m_Remainder+1,1);

SET m_StrHex35=CONCAT(m_Base35,m_StrHex35);

END WHILE;

SET m_Remainder=p_Hex10%35;
  SET m_Base35=SUBSTRING('0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ',m_Remainder+1,1);
  SET m_StrHex35=CONCAT(m_Base35,m_StrHex35);
    -- PRINT @StrHex35
    RETURN  m_StrHex35;
END

BEGIN
    DECLARE m_StrHex35Len INT ;      -- 被转换35进制字串的长度
    DECLARE m_Base35To10  INT ;      -- 每位35进制基数对应的10进制数据大小
    DECLARE m_Index       INT ;      -- 字符串索引
    DECLARE m_Hex10       BIGINT ;      -- 被返回10进制数据
    DECLARE m_Base35      VARCHAR(1) ; -- 35进制基数

DECLARE m_Middle_Data BIGINT;

SET m_Hex10=0;
    SET m_StrHex35Len=LENGTH(p_StrHex35);
    SET m_Index=1;

WHILE (m_Index<=m_StrHex35Len) DO

SET m_Base35=SUBSTR(p_StrHex35 from m_Index for 1);

SET m_Base35To10= LOCATE(m_Base35,'0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ') - 1;

-- 注意:这里必须先把Power的值保存到一个变量,不能计算的结果直接乘一个另外的变量,这样会造成计算结果不正确
        SET m_Middle_Data = POWER(35,m_StrHex35Len-m_Index);

SET m_Hex10=m_Hex10+m_Base35To10 * m_Middle_Data;

SET m_Index=m_Index+1;
    END WHILE;

RETURN   m_Hex10;
END

mysql 10进制与35进制之间的转换 注意Power处理bigint的问题的更多相关文章

  1. golang中字符串、数值、2进制、8进制、16进制、10进制、日期和字符串之间的转换

    package main import ( "fmt" "reflect" "strconv" "time" ) fun ...

  2. C++ 中 int 转string, 以及10进制转2进制

    感谢:http://blog.csdn.net/xiaofei2010/article/details/7434737 以及:http://www.cnblogs.com/nzbbody/p/3504 ...

  3. js用8421码实现10进制转2进制

    今天早上突然心血来潮决定用 ''和js来撸一个进制转换.(纯属心血来潮,有兴趣的可以看看.) 我们知道,通过8421码.可以快速的得到一个10进制的2进制.如下图: 如上图所示:我们将10进制的 '1 ...

  4. python中2进制、10进制、16进制等之间的转换

    10转2: bin(8) # '0b1000' 2转10: int( 10转16: hex(15) # '0xf' 16转10: int( 2进制和16进制中间通过转10进制可以相互转换 from b ...

  5. javascript 10进制和64进制的转换

    原文:javascript 10进制和64进制的转换 function string10to64(number) { var chars = '0123456789abcdefghigklmnopqr ...

  6. c# 关于10进制和16进制转换以及显示

    直接举例说明: int i = 15;//一个10进制数 string txt = Convert.ToString(i,16);//将上面10进制以16进制形式显示为f string s = &qu ...

  7. python3 第十九章 - 写一个10进制转任意进制的函数

    我们先回忆下之前所学的进制转换的知识(详见:第十章),10进制转其它进制的方法是: 整数部分,除基取余,逆序排列 小数部分,乘基取整,顺序排列 负数,按绝对值处理 好,假设我们需要转化的数都是正整数, ...

  8. 10进制 VS 2进制

    10进制 VS 2进制 时间限制: 1 Sec  内存限制: 32 MB 题目描述 样例输出 623 #include<stdio.h> #include<string.h> ...

  9. 题目1208:10进制 VS 2进制(进制转换以及大数保存问题)

    题目链接:http://ac.jobdu.com/problem.php?pid=1208 详细链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

随机推荐

  1. EnterpriseLibrary4 自己封装程序集实现log打印

      注意:1)要引用响应的程序集,必须是41的          2)配置文件 using Microsoft.Practices.EnterpriseLibrary.Common.Configura ...

  2. magento日常使用

    magento order number长度(修改)设置 2013年3月15日星期五 Asia/Shanghai上午10时22分02秒 1-进入要修改的该网站的数据库:2-找到表名:eav_entit ...

  3. 动画(Animation) 、 高级动画(Core Animation)

    1 演示UIImage制作的动画 1.1 问题 UIImage动画是IOS提供的最基本的动画,通常用于制作一些小型的动画,本案例使用UIImage制作一个小狗跑动的动画,如图-1所示: 图-1 1.2 ...

  4. python 各种控制语句

    python的控制语句分为: if: if condition: cmd elif condition:#该块为可选 cmd else:#该块为可选 cmd while: whlie conditio ...

  5. LeetCode Path Sum II (DFS)

    题意: 给一棵二叉树,每个叶子到根的路径之和为sum的,将所有可能的路径装进vector返回. 思路: 节点的值可能为负的.这样子就必须到了叶节点才能判断,而不能中途进行剪枝. /** * Defin ...

  6. 学习opengl十大网站(转载)

    [转载] 1.http://nehe.gamedev.net/这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48个教程翻译成了中文http://www.owlei.com/Dancing ...

  7. Spring3整合Hibernate4-我们到底能走多远系列(30)

    我们到底能走多远系列(30) 扯淡: 30篇啦!从2012-08-15开始的系列,东平西凑将近一年的时间也就这么几篇.目标的100篇,按这个速度也要再搞两年呢. 发博客果然不是件容易的事,怪不得更多的 ...

  8. 如何禁用ListView中的选中效果

    有的时候,我们希望ListView没有选中效果. 导致选中效果出现可能有两方面的原因: 1.每一行View自身可能有选中效果,可以将它的背景设置为透明 2.ListView有一个listSelecto ...

  9. jq中阻止元素的默认行为

    event.preventDefault();//阻止元素的默认行为

  10. 课堂所讲整理:super和转型(修改版)

    创建父类: package org.hanqi.pn0120; public class Father { private String name; private int age; public S ...