如何在C#中实现进制间转换
来源:网络收集 点击: 时间:2024-05-141.首先打开VS软件,创建如下图所示的窗体及控件。下图中所示窗体较为简陋,请主要参考实现方法。

2.点击窗体中转换按钮时触发事件。此处最好加上try{}catch(){}方法,拦截错误信息,防止程序崩溃。如下图所示

3.十进制转换成三十二进制方法如下图。其中传入参数为待转换的十进制数值。调用此方法需要检验传入数值是否为正整数。

4.十进制转换成三十六进制方法如下图。其中传入参数为待转换的十进制数值。调用此方法需要检验传入数值是否为正整数。

4.三十二进制转换成十进制方法如下图。其中传入参数为待转换的三十二进制数值。

6.自己整理出了一种通用型转换进制的方法。需要传入待转换的数值及需要转换成的进制。如下图所示。

7.下图为所有进制的转换方法,其中包含每种进制数所对应的代码可自行修改。

以下为本次演示实例的源代码,供大家参考。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 进制转换
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void buttonX1_Click(object sender, EventArgs e)
{
this.txtNewValue.Text = string.Empty;
this.txtNewValue.Text = IntToAry(int.Parse(this.txtValue.Text.Trim()), int.Parse(this.comboBoxEx1.Text));
}
/// summary
/// 万能进制转换
/// /summary
/// param name=xx待转换数据/param
/// param name=xx需要装换成的进制/param
/// returns/returns
public static string IntToAry(long xx, int Ary)
{
string a = ;
while (xx = 1)
{
int index = Convert.ToInt16(xx - (xx / Ary) * Ary);
a = Base64Code + a;
xx = xx / Ary;
}
return a;
}
/// summary
///十进制转换成32进制
/// /summary
/// param name=xx待转换的值/param
/// returns/returns
public static string IntToi32(long xx)
{
string a = ;
while (xx = 1)
{
int index = Convert.ToInt16(xx - (xx / 32) * 32);
a = Base64Code + a;
xx = xx / 32;
}
return a;
}
/// summary
/// 十进制转换成36进制
/// /summary
/// param name=xx待转换的值/param
/// returns/returns
public static string IntToi36(long xx)
{
string a = ;
while (xx = 1)
{
int index = Convert.ToInt16(xx - (xx / 36) * 36);
a = Base64Code + a;
xx = xx / 36;
}
return a;
}
/// summary
/// 32进制转换成10进制
/// /summary
/// param name=xx待转换的值/param
/// returns/returns
public static long i32ToInt(string xx)
{
long a = 0;
int power = xx.Length - 1;
for (int i = 0; i = power; i++)
{
a += _Base64Code.ToString()] * Convert.ToInt64(Math.Pow(32, i));
}
return a;
}
/// summary
/// 十进制转换成64进制
/// /summary
/// param name=xx待转换的值/param
/// returns/returns
public static string IntToi64(long xx)
{
string a = ;
while (xx = 1)
{
int index = Convert.ToInt16(xx - (xx / 64) * 64);
a = Base64Code + a;
xx = xx / 64;
}
return a;
}
/// summary
/// 64进制转换成10进制
/// /summary
/// param name=xx待转换的值/param
/// returns/returns
public static long i64ToInt(string xx)
{
long a = 0;
int power = xx.Length - 1;
for (int i = 0; i = power; i++)
{
a += _Base64Code.ToString()] * Convert.ToInt64(Math.Pow(64, i));
}
return a;
}
public static Dictionaryint, string Base64Code = new Dictionaryint, string() {
{ 0 ,0}, { 1 ,1}, { 2 ,2}, { 3 ,3}, { 4 ,4}, { 5 ,5}, { 6 ,6}, { 7 ,7}, { 8 ,8}, { 9 ,9},
{ 10 ,a}, { 11 ,b}, { 12 ,c}, { 13 ,d}, { 14 ,e}, { 15 ,f}, { 16 ,g}, { 17 ,h}, { 18 ,i}, { 19 ,j},
{ 20 ,k}, { 21 ,l}, { 22 ,m}, { 23 ,n}, { 24 ,o}, { 25 ,p}, { 26 ,q}, { 27 ,r}, { 28 ,s}, { 29 ,t},
{ 30 ,u}, { 31 ,v}, { 32 ,w}, { 33 ,x}, { 34 ,y}, { 35 ,z}, { 36 ,A}, { 37 ,B}, { 38 ,C}, { 39 ,D},
{ 40 ,E}, { 41 ,F}, { 42 ,G}, { 43 ,H}, { 44 ,I}, { 45 ,J}, { 46 ,K}, { 47 ,L}, { 48 ,M}, { 49 ,N},
{ 50 ,O}, { 51 ,P}, { 52 ,Q}, { 53 ,R}, { 54 ,S}, { 55 ,T}, { 56 ,U}, { 57 ,V}, { 58 ,W}, { 59 ,X},
{ 60 ,Y}, { 61 ,Z}, { 62 ,-}, { 63 ,_},
};
public static Dictionarystring, int _Base64Code
{
get
{
return Enumerable.Range(0, Base64Code.Count()).ToDictionary(i = Base64Code, i = i);
}
}
}
}
注意事项以上内容如需转载,请标明出处。
如果对各位读者有帮助,请帮忙投票。谢谢!
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_757378.html