曾经在大学时做过一个c的进制转换算法,那时由于技术的局限性,数值的大小受到限制(系统数据类型长度限制),多年以后,自己那台学习机陈旧后感觉要报废了,整理了一下里面的东西,偶尔在一个角落里发现了这个转换算法,觉得它还有改进的地方,可以让它功能更强大(当时想过要转换超长数值,但受系统数据类型的局限性、个人开发语言深度的认知、以及视界观的狭隘,没能想到可以解决计算超长数据的有效的方法),这里我会将多年前大学里写的那段,和我修改后的粘贴出来,以飨读者。
 
传入参数:
string x 是超大数的字符串格式,当然越大越能显示出本方法的威力。
int y 是将传入的十进制数(前面的字符串)转换为32位进制以内的其他进制,范围(2~32)
        
说明:说是超长数据,其实还是受到最大
数限制,负责会溢出,不过这个最大数真的是太太大了,估计还没诞生过的吧?!呵呵。
     static string DecimalismConversion(string x, int y)
{
Stack stack = new Stack(); int length = Int64.MaxValue.ToString().Length - ; while ( x!="")
{
string quotient = string.Empty;
string remainder = string.Empty;
int count = ;
Int64 i64 = ;
while (count * length < x.Length)
{
string str = x.Substring(count * length, Math.Min(length, x.Length - count * length));
i64 = Convert.ToInt64(remainder + str);
remainder = (i64 % y).ToString();
quotient += (i64 / y).ToString().PadLeft(str.Length, '');
count++;
}
Int64.TryParse(remainder, out i64);
if (i64 % y < ) stack.Push((char)(i64 % y + ));
else stack.Push((char)(i64 % y + ));
x = quotient.TrimStart(new char[] { ' ', '' });
} return new string(stack.ToArray());
}

以下这段是它的原身,现在想想就可笑,以前写程序设计(c语言),那么难看。

int main(int x,int y)
{
int i=;
char a[];
printf("Input:");
L:
scanf("%d %d",&x,&y);
if(x<=||y<=||y>=)
{
printf("Input error,input again:");
goto L;
}
while(x!=)
{
if(x%y<)
a=(char)(x%y+);
else
a=(char)(x%y+);
x=x/y;
}
for(i=i-;i>=;i--)
printf("%c",a);
putchar('\n');
}

C# 进制转换 (没有数值的长度限制)的更多相关文章

  1. python 数值系列-进制转换

    进制转换 前语: 如果您不通二进制,八进制,十六进制,请移步:http://www.360doc.com/content/17/0211/21/40101294_628326994.shtml 问题 ...

  2. [No000071]C# 进制转换(二进制、十六进制、十进制互转)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 进制转换( C++字符数组 )

    注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...

  4. java:数据结构(二)栈的应用(进制转换全收集)

    说到进制转换,java已经封装了基本的方法,在竞赛中使用封装的方法自然能节省大量时间 另一位仁兄介绍的封装好的方法: https://blog.csdn.net/m0_37961948/article ...

  5. Java基础(进制转换-)

    进制概述: 进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数). 对于任何一种进制---X ...

  6. C# 进制转换(二进制、十六进制、十进制互转)

    原文地址:https://www.cnblogs.com/icebutterfly/p/8884023.html C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所 ...

  7. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

  8. C# 进制转换(二进制、十六进制、十进制互转) 转载 https://www.cnblogs.com/icebutterfly/p/8884023.html

    C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示例如: 二进制: 1010 表示为 字符串:"1010" int ...

  9. 11 JavaScript Number原始值&对象&科学记数法&范围&进制转换&溢出Infinity&NaN

    JavaScript Number对象 是经过封装的能处理数字值的对象 由Number()构造器创建 只有一种数字类型 可以使用也可以不使用小数点书写数字 JavaScript原始值与对象: 在Jav ...

随机推荐

  1. [UCSD白板题] Covering Segments by Points

    Problem Introduction You are given a set of segments on a line and your goal is to mark as few point ...

  2. MVVM 在使用 ItemsSource 之前,项集合必须为空

    今天在做ListBox和Combobox绑定的时候,都出现过“在使用 ItemsSource 之前,项集合必须为空”的错误. Combobox比较简单,代码如下: <ComboBox x:Nam ...

  3. HTML URL 编码

    转自:http://www.w3school.com.cn/tags/html_ref_urlencode.htmlURL 编码 - 从 %00 到 %8f ASCII Value URL-encod ...

  4. gulp实用插件总结

    gulp-sass:预编译sass; gulp-imagemin:压缩png.jpj.git.svg格式图片 gulp-minfy-css:压缩css文件 gulp-rename 重命名文件,把一个文 ...

  5. 播放一个视频并用滚动条控制进度-OpenCV应用学习笔记二

    今天我们来做个有趣的程序实现:利用OpenCV读取本地文件夹的视频文件,并且在窗口中创建拖动控制条来显示并且控制视频文件的读取进度. 此程序调试花费了笔者近一天时间,其实大体程序都已经很快写出,结果执 ...

  6. HTML5实战1

    第一章 1.搭建环境,wamp 2.检查浏览器是否支持html5 ,是否支持新标签<canvas></canvas> 3.简单高效,少用id,多用标签. 4.使用css3美化样 ...

  7. sshd 错误

    140669086946976:error:0E079065:configuration file routines:DEF_LOAD_BIO:missing equal sign:conf_def. ...

  8. 实现Ogre的脚本分离 - 天龙八部的源码分析(一)

    目的 在研究天龙八部游戏的源码之时, 发现 Ogre 材质的模板部分被单独放在一个 material 文件之内, 继承模板的其他材质则位于另外的文件, 当我使用Ogre 官方源码, 加载脚本时其不会查 ...

  9. iOS 删除已经配置的类库和移除CocoaPods

    引言 我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,但是不由得产生一个疑问:如果发现某个类库不适用,甚至是整个CocoaPods我们都不想再在项目中持有,那么我们要怎么把这些 ...

  10. SQL入门经典(五) 之键和约束

    这一篇博客主要讲键的创建,约束的创建.修改对象和删除对象. 主键:主键是每行的唯一标识符,必须包含唯一值(因此不能为NULL).由于主键在关系中数据库的重要性,因此它是所有键和约束中最重要的.一个表最 ...