private const string initValue = "A0000001";

        private static string cs = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        public static string AddOne(string str)
{
if (str == string.Empty)
{
return initValue;
}
Int64 num = StringToNumber(str);
return NumberToString(++num);
} public static Int64 StringToNumber(string str)
{
int leg = str.Length;
double num = ;
if (leg != )
{
for (int i = ; i < leg; i++)
{
if (str[i] != '')
{
num += cs.IndexOf(str[i]) * Math.Pow(, leg - - i);
}
}
}
return Convert.ToInt64(num);
} public static string NumberToString(Int64 num)
{
string str = string.Empty;
while (num >= )
{
str = cs[(int)(num % )] + str;
num = num / ;
}
return cs[(int)num] + str;
}

2019-8-30改进的版本

class Program {
static void Main(string[] args) {
string curr = "ZZZZZZ";
Console.WriteLine("原始值:" + curr);
Int64 num = Scale.ToInt64(curr);
Console.WriteLine("转成Int64:" + num);
Console.WriteLine("根据Int64转成进制:" + Scale.ToCurr(num));
Console.ReadLine();
}
}
public static class Scale {
/// <summary>
/// 进制符号字符串
/// </summary>
private static string scString = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
/// <summary>
/// 字符集,可以根据编号索引拿到字符
/// </summary>
private static char[] scArray = scString.ToCharArray();
/// <summary>
/// 字符字典,可以根据字符拿到编号索引
/// </summary>
private static Dictionary<char, int> scDic = ToCharDic();
/// <summary>
/// 根据字符串反馈进制数
/// </summary>
public static int Len { get { return scString.Length; } } /// <summary>
/// 将字符串处理成字符字典
/// </summary>
private static Dictionary<char, int> ToCharDic() {
Dictionary<char, int> dic = new Dictionary<char, int>();
for (int i = 0; i < scArray.Length; i++) {
dic.Add(scArray[i], i);
}
return dic;
}
/// <summary>
/// 根据传入的字符符号定义进制,字符符号不能重复,模拟十进制字符串为:0123456789
/// </summary>
public static void SetScale(string scaleString) {
scString = scaleString;
scArray = scString.ToCharArray();
scDic = ToCharDic();
}
/// <summary>
/// 将Int64转成当前进制字符串
/// </summary>
public static string ToCurr(long num) {
string curr = "";
while (num >= Len) {
curr = scArray[num % Len] + curr;
num = num / Len;
}
curr = scArray[num] + curr;
return curr;
}
/// <summary>
/// 将当前进制字符串转成Int64
/// </summary>
public static long ToInt64(string curr) {
double num = 0;
for (int i = 0; i < curr.Length; i++) {
num += scDic[curr[i]] * Math.Pow(Len, curr.Length - 1 - i);
}
return Convert.ToInt64(num);
}
}

  

用C#简单实现的36进制转换代码的更多相关文章

  1. java进制转换代码

    定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头需要将十进制的数以二进制的数表示出来可以参照下例: int a = 10; System.out.pr ...

  2. snip_进制转换代码段

    10进制转成16进制. /* 程序:10进制转16进制的C语言实现 描述: 关键: 获得余 获得整 整为零 则退出 */ #include<stdio.h> #define N 10 #d ...

  3. SQL Server 进制转换函数

    一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...

  4. poj1220 (高精度任意进制转换)

    http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...

  5. Bugku-CTF加密篇之进制转换(二进制、八进制、十进制、十六进制,你能分的清吗?)

    进制转换 二进制.八进制.十进制.十六进制,你能分的清吗?

  6. 第四届河南省ACM 序号互换 进制转换

    序号互换 时间限制: 1 Sec  内存限制: 128 MB 提交: 41  解决: 19 [提交][状态][讨论版] 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐 ...

  7. PHP实现生成唯一编号(36进制的不重复编号)

    当我们要将一个庞大的数据进行编号时,而编号有位数限制,比如5位的车牌号.10位的某证件号码.订单流水号.短网址等等,我们可以使用36进制计算出符合位数的不重复的编号. 我们将0-Z(012345678 ...

  8. Oracle 10进制转36进制

    CREATE OR REPLACE FUNCTION IDFMS.func_dec236 (parm IN INT DEFAULT 0)   RETURN VARCHAR2IS   /*   10进制 ...

  9. php 36进制与10进制转换

    php 36进制与10进制转换 /** * @desc im:十进制数转换成三十六机制数 * @param (int)$num 十进制数 * return 返回:三十六进制数 */ function ...

随机推荐

  1. codeforces1156D 0-1-Tree 换根dp

    题目传送门 题意: 给定一棵n个点的边权为0或1的树,一条合法的路径(x,y)(x≠y)满足,从x走到y,一旦经过边权为1的边,就不能再经过边权为0的边,求有多少边满足条件? 思路: 首先,这道题也可 ...

  2. CSIC_716_20191209【并发编程---GIL和协程】

    GIL   Global Interpreter Lock 全局解释锁 GIL对含IO的任务来说,会出现不能保证数据安全的情况.如下: from threading import Thread fro ...

  3. codeforces 1B 模拟

    题目大意: 给出两种行列位置的表示方法,一个是Excel表示法,一个是(R,C)坐标表示.给出一种表示,输出另外一种表示. 基本思路: 模拟,首先判断是哪一种表示法,然后转换成另外一种表示方法: 我做 ...

  4. vue v-modle修饰符.number .trim

    语法糖: 在不影响功能的情况下,添加某种方法实现同样的效果,从而方便程序开发. .number:可以将输入转换成Number类型,否则虽然输入的是数字,但它的类型其实是String. .trim:自动 ...

  5. Thread.Join理解

    Thread.Join:Blocks the calling thread until a thread terminates MainThread里面起了一个SubThread,从SubThread ...

  6. Unity HOME

    { https://unity.com/cn?_ga=2.134655153.1528856053.1574826116-818341090.1574826116 }

  7. vma

    linux内核的每一样技术,都是为了解决某个问题的. vma结构体的提出是为了管理"虚拟内存空间"这个资源. 像brk(),mmap()分配给用户空间的都是虚拟地址(当然),那内核就要知道哪一部分虚拟 ...

  8. 浅析阿里云API网关的产品架构和常见应用场景

    自上世纪60年代计算机网络发展开始,API(Application Programming Interface )随之诞生,API即应用程序接口,是实现系统间衔接的桥梁.时至今日,API市场已经形成了 ...

  9. Shiro学习(2)身份验证

    身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...

  10. NOIP模拟测试19

    T1: 题目大意:将一颗有N个节点的树分割,使得每个联通块大小相等,问一共有多少方案.(N<=1000000) 首先,一条很显然的性质,每个联通块的大小一定是N的因子. 然后,我们可以对于每个因 ...