用C#简单实现的36进制转换代码
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进制转换代码的更多相关文章
- java进制转换代码
定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头需要将十进制的数以二进制的数表示出来可以参照下例: int a = 10; System.out.pr ...
- snip_进制转换代码段
10进制转成16进制. /* 程序:10进制转16进制的C语言实现 描述: 关键: 获得余 获得整 整为零 则退出 */ #include<stdio.h> #define N 10 #d ...
- SQL Server 进制转换函数
一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...
- poj1220 (高精度任意进制转换)
http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...
- Bugku-CTF加密篇之进制转换(二进制、八进制、十进制、十六进制,你能分的清吗?)
进制转换 二进制.八进制.十进制.十六进制,你能分的清吗?
- 第四届河南省ACM 序号互换 进制转换
序号互换 时间限制: 1 Sec 内存限制: 128 MB 提交: 41 解决: 19 [提交][状态][讨论版] 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐 ...
- PHP实现生成唯一编号(36进制的不重复编号)
当我们要将一个庞大的数据进行编号时,而编号有位数限制,比如5位的车牌号.10位的某证件号码.订单流水号.短网址等等,我们可以使用36进制计算出符合位数的不重复的编号. 我们将0-Z(012345678 ...
- Oracle 10进制转36进制
CREATE OR REPLACE FUNCTION IDFMS.func_dec236 (parm IN INT DEFAULT 0) RETURN VARCHAR2IS /* 10进制 ...
- php 36进制与10进制转换
php 36进制与10进制转换 /** * @desc im:十进制数转换成三十六机制数 * @param (int)$num 十进制数 * return 返回:三十六进制数 */ function ...
随机推荐
- JS基础API
数据类型 number object string null undefined boolean 转换规则是除了undefined null false 0 NAN ''或""&q ...
- $@、$*和环境变量IFS
- 第四章 K8s部署安装
一.kube-proxy开启ipvs的前置条件 //1.加载netfilter模块 modprobe br_netfilter //2.添加配置文件 cat > /etc/sysconfig/m ...
- PHP-移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...
- Delphi QueryPerformanceCounter、QueryPerformanceFrequency函数,精确定时到ns
var t1,t2:int64; r1,r2,r3:double; begin QueryPerformanceFrequency(c1);//WINDOWS API 返回计数频率 (Intel86: ...
- 【Web】Spring WebFlux
阅读目录 一.关于WebFlux 二.SpringMVC与SpringWebFlux 三.Reactive Spring Web 四.实现WebFlux示例 SpringWebflux是SpringF ...
- linux python3 venv 虚拟环境报错 [-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 2.
解决办法: 先创建没有pip的虚拟环境,然后启动虚拟环境后,再安装pip 办法一: 亲测失败了... python3 -m venv --without-pip py36env 办法二 sudo ap ...
- 11、jQueryEasyUI的基本组件
1.拖动的div <!--jquery 的主文件...--> <script type="text/javascript" src="../../js/ ...
- vbs 之 wscript
https://www.jb51.net/article/20919.htm '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ...
- 分析由Python编写的大型项目(Volatility和Cuckoo)
之前使用python都是用来做一些简单的脚本,本质上和bat批处理文件没有区别. 但是Python是可以用来编写大型的项目的,比如: Volatility:https://code.google.co ...