/// <summary>
/// 将十进制转换为指定的进制
/// </summary>
/// <param name="Val">十进制值</param>
/// <param name="TargetRadix">目标进制</param>
/// <param name="BaseChar">基数列表(长度必须大于源字符串进制,无I,O)</param>
/// <returns></returns>
public static string JinZhiConvert(ulong Val, int TargetRadix = , string BaseChar = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")
{
if (TargetRadix == && BaseChar.Length == ) return "长度与基数不能同时为零";
if (TargetRadix <= ) TargetRadix = BaseChar.Length;
List<string> r = new List<string>();
do
{
ulong y = Val % (ulong)TargetRadix;
r.Add(BaseChar[Convert.ToInt32(y)].ToString());
Val = Convert.ToUInt64(Math.Floor(Val / (decimal)TargetRadix));
} while (Val > );
r.Reverse();
return string.Join("", r.ToArray());
} /// <summary>
/// 将任意进制转化为十制
/// </summary>
/// <param name="Val">任意进制的字任串</param>
/// <param name="SourceRadix">源字符串的进制</param>
/// <param name="BaseChar">基数列表(长度必须大于源字符串进制,无I,O)</param>
/// <returns></returns>
public static ulong JinZhiConvert(string Val, int SourceRadix = , string BaseChar = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")
{
ulong r = ;
if (BaseChar == "") return ;
if (SourceRadix == ) SourceRadix = BaseChar.Length;
List<char> v = Val.ToCharArray().ToList();
v.Reverse();
for (int i = ; i < v.Count; i++)
{
int index = BaseChar.IndexOf(v[i]);
if (index > -)
r += Convert.ToUInt64(index * Math.Pow(SourceRadix, i));
}
return r;
}

C#十进制与任意进制的转换的更多相关文章

  1. python的十进制与任意进制的转换

    将任意进制转换成十进制 ", 8)) # 表示把8进制的54转换成十进制数并输出结果. # 8可以是2.8,10,16等进制数 将十进制转换成任意进制 def f(n,x): #n为待转换的 ...

  2. java中十进制转换为任意进制

    次笔试时候遇到的关于十进制转换成十三进制的编程题. 先说说简单的思路吧: 1.十进制数 num 转换为 n进制 num%n结果肯定为n进制数的最后一位 结果存入一个数组中 2.进入一个循环num!=0 ...

  3. C++十进制到任意进制

    #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...

  4. java 的任意进制间转换(很方便)

    import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = n ...

  5. java 的任意进制间转换

    直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method st ...

  6. js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制

    var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 class Stack{ constructor(){ items.se ...

  7. 十进制和n进制的转换(10进制转换为36进制)

    答案如下: void Convert() { map<int ,string> maps; maps[0]="0"; maps[1]="1"; ma ...

  8. C语言之任意进制的转换

    我们都知道转换进制是一个让人比较头疼的事情,下面我的代码不是最好的,也就仅仅是一个思路而已,至少我认为使用栈来进行进制转换是比较合适的一种方法,好了,不多叙述了. #include<stdio. ...

  9. C#实现整型数据字任意编码任意进制的转换和逆转换

    实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Text;  namespa ...

随机推荐

  1. jdk版本相关问题

    1.switch在jdk1.7版本之后开始支持String类型: 2.maven3版本默认支持jdk版本为jdk1.5 3.编辑器中jdk版本设置为1.7或1.8版本,但未指定maven中的jdk版本 ...

  2. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  3. 自动化工具-ansible服务部署与使用

    1.前言 1.1ansible软件介绍 python 语言是运维人员必须会的语言 ansible 是一个基于python 开发的自动化运维工具 其功能实现基于ssh远程连接服务 ansible 可以实 ...

  4. Log4j2 设置控制台打印彩色日志

    https://www.baidu.com/s?ie=utf-8&tn=02003390_20_hao_pg&wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%99% ...

  5. 前端——BOM和DOM

    要想和浏览器有交互的动作,即要继续学习DOM,BOM. JavaScript分为 ECMAScript,DOM,BOM. BOM (Browser Object Model) 是指浏览器对象模型,他使 ...

  6. easyUI使用datagrid-detailview.js实现多级级列表嵌套

    转载请注明出处: 注意事项: 原本在谷歌浏览器进行示例测试的,url请求对应的json文件,效果一直显示不出来,换到谷歌和IE是可以正常显示的, 解决方法可参考:http://www.cnblogs. ...

  7. Linux mint 下开发设置

    切换thinpad Home-Pgup End-Pgdn sudo vim ~/.Xmodmap keysym Prior = Home keysym Next = End 禁用鼠标中间粘帖功能 su ...

  8. ELK6.6.0+filebeat6.6.0部署

    elastic不能用root用户去启动,否则会报错,所以创建elastic用户ES集群部署 1.创建elastic用户 $ useradd elastic $ passwd elastic 2..部署 ...

  9. Yum安装时出现 The program yum-complete-transaction is found in the yum-utils package

    yum安装时出现 The program yum-complete-transaction is found in the yum-utils package yum之后,会显示上信息,并且最终执行结 ...

  10. 他山之石,calling by share——python中既不是传址也不是传值

    事情是这样的,Python里是传址还是传值令人疑惑,限于本人没有C基础,所以对大家的各类水平层次不一的解答难以确信. 第一个阶段: 在读<python基础教程第二版>的时候感到疑惑,然后群 ...