C#中10进制与16进制的转换

本文提供了两个用于进制转换的方法:一个将十六进制数转换为十进制数,另一个则进行相反的操作。通过手动计算而非使用内置函数实现转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转10进制

/// <summary>

/// 十进制

/// </summary>

/// <param name="restr"></param>

/// <returns></returns>

private long to10(string restr)

{

//var dd= Convert.ToInt64(restr, 16);

//return dd;

string a = restr.Substring(0, 1);

string b = restr.Substring(1, 1);

string c = restr.Substring(2, 1);

string d = restr.Substring(3, 1);

string e = restr.Substring(4, 1);

string f = restr.Substring(5, 1);

string g = restr.Substring(6, 1);

string h = restr.Substring(7, 1);

string i = restr.Substring(8, 1);

string j = restr.Substring(9, 1);

string k = restr.Substring(10, 1);

string l = restr.Substring(11, 1);

long b1 = restring.IndexOf(a);

long b2 = restring.IndexOf(b);

long b3 = restring.IndexOf(c);

long b4 = restring.IndexOf(d);

long b5 = restring.IndexOf(e);

long b6 = restring.IndexOf(f);

long b7 = restring.IndexOf(g);

long b8 = restring.IndexOf(h);

long b9 = restring.IndexOf(i);

long b10 = restring.IndexOf(j);

long b11 = restring.IndexOf(k);

long b12 = restring.IndexOf(l);

long jz = 16;

long a1 = b1 * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz;

long a2 = b2 * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz;

long a3 = b3 * jz * jz * jz * jz * jz * jz * jz * jz * jz;

long a4 = b4 * jz * jz * jz * jz * jz * jz * jz * jz;

long a5 = b5 * jz * jz * jz * jz * jz * jz * jz;

long a6 = b6 * jz * jz * jz * jz * jz * jz;

long a7 = b7 * jz * jz * jz * jz * jz;

long a8 = b8 * jz * jz * jz * jz;

long a9 = b9 * jz * jz * jz;

long a10 = b10 * jz * jz;

long a11 = b11 * jz;

long a12 = b12;

long aa = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12; return aa;

}

转16进制

/// <summary>

/// 十六进制

/// </summary>

/// <param name="numstr"></param>

/// <returns></returns>

private string to16(long numstr) {

//var dd = Convert.ToString(numstr, 16);

//return dd;

long jz = 16;

long b1 = numstr % jz;

long b2 = (numstr % (jz * jz)) / (jz);

long b3 = (numstr % (jz * jz * jz)) / (jz * jz);

long b4 = (numstr % (jz * jz * jz * jz)) / (jz * jz * jz);

long b5 = (numstr % (jz * jz * jz * jz * jz)) / (jz * jz * jz * jz);

long b6 = (numstr % (jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz);

long b7 = (numstr % (jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz);

long b8 = (numstr % (jz * jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz * jz);

long b9 = (numstr % (jz * jz * jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz * jz * jz);

long b10 = (numstr % (jz * jz * jz * jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz * jz * jz * jz); long b11 = (numstr % (jz * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz * jz * jz * jz * jz);

long b12 = (numstr % (jz * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz)) / (jz * jz * jz * jz * jz * jz * jz * jz * jz * jz * jz);

int aa = int.Parse(b1.ToString()) + 1;

string a = restring.Substring(int.Parse(b1.ToString()), 1);

string b = restring.Substring(int.Parse(b2.ToString()), 1);

string c = restring.Substring(int.Parse(b3.ToString()), 1);

string d = restring.Substring(int.Parse(b4.ToString()), 1);

string e = restring.Substring(int.Parse(b5.ToString()), 1);

string f = restring.Substring(int.Parse(b6.ToString()), 1);

string g = restring.Substring(int.Parse(b7.ToString()), 1);

string h = restring.Substring(int.Parse(b8.ToString()), 1);

string i = restring.Substring(int.Parse(b9.ToString()), 1);

string j = restring.Substring(int.Parse(b10.ToString()), 1);

string k = restring.Substring(int.Parse(b11.ToString()), 1);

string l = restring.Substring(int.Parse(b12.ToString()), 1);

string str = l + k + j + i + h + g + f + e + d + c + b + a; return str;

}

若其中有问题,欢迎给位大佬指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值