如何解决在C#中将int类型更改为char类型
我正在尝试将一个非常大的数字逐位分解,并将它们一一添加(对于大数计算器)。
条件是我不应该使用任何Math或BigNumbers库,并且输入必须采用字符串。
我这样做的方式是:将字符串取下,将每个字符串放入(char)
的列表中,并转换每个(char) to (int)
并执行操作,然后将结果数字改回{ 1}},然后将其添加到名为Result的列表中。
我想知道如何将(int)更改为(char)? “ Convert.ToChar()”不起作用,因为它将数字转换为其Unicode字符。 这是代码,我标记了问题:
(char)
解决方法
例如,我已经完成加法并仅使用字符串,但是您可以将其替换为list的逻辑,并通过一些更改以相同的方式进行其他数学运算:
private const char O = '0';
public static void Main()
{
var num1 = "55555555555555555555555555555555555555578955555555555555";
var num2 = "55555555555555555555555555";
var result = string.Empty;
var num1Index = num1.Length - 1;
var num2Index = num2.Length - 1;
var temp = 0;
while (true)
{
if (num1Index >= 0 && num2Index >= 0)
{
var sum = ((temp + num1[num1Index--] - O) + (num2[num2Index--] - O));
result = sum % 10 + result;
temp = sum / 10;
}
else if (num1Index < 0 && num2Index >= 0)
{
result = temp + (num2[num2Index--] - O) + result;
temp = 0;
}
else if (num1Index >= 0 && num2Index < 0)
{
result = temp + (num1[num1Index--] - O) + result;
temp = 0;
}
else
{
break;
}
}
Console.WriteLine(result);
}
第一个if语句进行实际的数学运算,其余的只是在其余数字的长度不同的情况下追加其余数字。
并再次将int转换为char,可以通过添加例如
(char)([some digit hier] + '0')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。