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. Hibernate4教程六(2):基本实现原理

    整体流程 1:通过configuration来读cfg.xml文件 2:得到SessionFactory 工厂 3:通过SessionFactory 工厂来创建Session实例 4:通过Sessio ...

  2. css3两个汤圆亲吻动效

    效果图: 模板来源:https://www.17sucai.com/pins/demo-show?id=35132 自己仿写出来的效果图: 笔记: 1.transform:translate(-50% ...

  3. linux网络配置 转

    1.常用配置网络指令 (1) 配置eth0的IP地址, 同时激活该设备 1 sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 添 ...

  4. 【Luogu】【关卡2-10】分治算法(2017年10月)

    任务说明:将大问题拆分为小问题,分而治之,各个击破,然后在合并回来. 取余运算||快速幂 幂次方 逆序对 南蛮图腾

  5. java -jar 设置日志位置

    使用 java -jar形式启动,设定日志的位置 语法如下: java -jar xxx.jar > xxx.log References java -jar 设置日志位置

  6. 控制台Cannot read property 'disabled' of null报错的问题

    点击任何东西控制台都会报错: 也没有提示哪儿出了问题,后来我就代码一块一块的注释,终于找到了原因. 我在项目中用了 el-dropdown ,但是没有用他的el-dropdown-menu 所以才会一 ...

  7. 获取微信企业的corpID,sercret,access_token,部门设置列表

    获取微信企业的corpID,sercret,access_token,部门设置列表   zabbix调用微信发短信可能用到的一些变量,获取方式如下: 1.corpID(公司ID) 在我的企业--企业信 ...

  8. bzoj 2561

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑做mst的时候,什么时候这条边不在这棵mst上呢? 就是比他小的权值的边讲这条边的 ...

  9. Shiro学习(4)INI配置

    之前章节我们已经接触过一些INI配置规则了,如果大家使用过如spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根 ...

  10. java——文件