C#十进制与任意进制的转换
/// <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#十进制与任意进制的转换的更多相关文章
- python的十进制与任意进制的转换
将任意进制转换成十进制 ", 8)) # 表示把8进制的54转换成十进制数并输出结果. # 8可以是2.8,10,16等进制数 将十进制转换成任意进制 def f(n,x): #n为待转换的 ...
- java中十进制转换为任意进制
次笔试时候遇到的关于十进制转换成十三进制的编程题. 先说说简单的思路吧: 1.十进制数 num 转换为 n进制 num%n结果肯定为n进制数的最后一位 结果存入一个数组中 2.进入一个循环num!=0 ...
- C++十进制到任意进制
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...
- java 的任意进制间转换(很方便)
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = n ...
- java 的任意进制间转换
直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method st ...
- js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 class Stack{ constructor(){ items.se ...
- 十进制和n进制的转换(10进制转换为36进制)
答案如下: void Convert() { map<int ,string> maps; maps[0]="0"; maps[1]="1"; ma ...
- C语言之任意进制的转换
我们都知道转换进制是一个让人比较头疼的事情,下面我的代码不是最好的,也就仅仅是一个思路而已,至少我认为使用栈来进行进制转换是比较合适的一种方法,好了,不多叙述了. #include<stdio. ...
- C#实现整型数据字任意编码任意进制的转换和逆转换
实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespa ...
随机推荐
- centos7安装配置jdk
① java -version 可以查看系统自带的openjdk版本信息 ② rpm -qa | grep java 查看系统自带的Java文件 ③ 卸载文件(noarch文件可以不用删除) -- ...
- java导出csv格式文件
导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; import java.io.File; import java.io.FileIn ...
- Linux 启动时profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile执行顺序以及文件说明
Linux 启动时profile.bashrc.~/.bash_profile.~/.bashrc.~/.bash_profile执行顺序以及文件说明 一.执行顺序 登录linux时,/etc/pro ...
- Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍.本来以为花不了 ...
- IDEA 发布Api
1.修改Main方法 代码: public class AlicsbapiApplication extends SpringBootServletInitializer { @Override pr ...
- Mysql 通用知识 2019-03-27
充电mysql 官网 https://www.mysql.com/ 以上是mysql的产品线,多数是收费的.只有社区版是免费的. 所以下面只说社区版community. MySQL Community ...
- Ubuntu 下将 svg 图片转换为其他格式 (如 png)
参考 How to Convert SVG Files to other Image Formats on Ubuntu 12.04/11.10 Ubuntu 下将 svg 图片转换为其他格式 (如 ...
- Linux机器学习软件配置
如果需要安装Python+anaconda+pycharm,就不需要单独安装Python了,因为anaconda自带Python https://www.twblogs.net/a/5b7f8c742 ...
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...
- java的hello world
public class HelloWorld { public static void main(String []args) { System.out.println("Hello Wo ...