/// <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. 实验1 C语言开发环境使用和数据类型,运算符,表达式

    part :验证性内容 .输出学号. #include<stdio.h> int main(void){ printf("); ; } .输入两个整数,求它们的乘积. #incl ...

  2. Appium(二)---启动App+模拟滑动

    环境搭建好了,就可以实现基本的操作,比如启动App和模拟滑动.这里我实现的是在真机(乐视1s)上启动抖音App,并滑动抖音的视频列表,代码如下: from appium import webdrive ...

  3. Linux环境部署SVN服务器

    1. 安装SVN服务器: 检查是否已安装 # rpm -qa subversion 安装SVN服务器 # yum install httpd httpd-devel subversion mod_da ...

  4. day12函数,三元表达式 ,列表推导式 ,字典推导式,函数对象,名称空间与作用域,函数的嵌套定义

    复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函 ...

  5. oracle 审计功能

    Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...

  6. JS高程关于ajax的学习笔记

    1.ajax介绍 ajax技术可以实现浏览器向服务器请求数据时不需要重新加载页面,就可以从服务器中获取需要的数据. ajax技术的核心是XMLHttpRequest对象(简称XHR),XHR对象为向服 ...

  7. 什么时候使用“RCC_APBXPeriph_AFIO”

    什么时候需要开启复用时钟: (1)使用EXTI (2)重映射(用到外设的重映射功能时才需要使能AFIO的时钟) 举例:重映射USART2 USART2的TX/RX在PA.2/3.但是,PA.2已经被T ...

  8. 记 Arduino 之 Hello World 篇(Getting Started)

    本文仅为入门实验,甚至谈不上研究的程度.目的是:记录如何烧录程序到 Arduino 主板,以及通过一些简单例程,找到 Arduino 开发的感觉. 开发环境:Ardunio IDE(用于编译.上传运行 ...

  9. Jvm类的加载机制

    1.概述 虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验.转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制. 2.类的加载时机 类从被虚拟机加 ...

  10. PHP工程师必备知识整理

    一.http/https协议,tcp/ip协议,websocket,session,cookie 二.php:oop,thinkphp5,laravel 三.mysql.memcache.redis ...