如何添加一个按钮来调用Base10转换方法?

本文关键字:调用 转换方法 按钮 Base10 何添加 添加 一个 | 更新日期: 2023-09-27 18:17:07

我是MS VS12的新手,我正在工作一个类项目,需要我将基数10转换为基数2,3,8和16。它还要求我把转换在一个方法,然后使用按钮调用那些方法,我不确定如何开始。有人能帮帮我吗?!

这是我到目前为止所做的(从最快的方式将10进制数转换为。net中的任何进制?)

    public static string IntToBinary(int value, char[] basechars)
    {
        string binary = IntToBinary(16, new char[] { '0', '1' });
        string hex = IntToBinary(16, new char[] { '0', '1', '2', '3', '4', '5', '6',
          '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'});
        string result = string.Empty;
        int conversion = basechars.Length;
        do
        {
            result = basechars[value % conversion] + result;
            value = value / conversion;
        }
        while (value > 0);
        return result;
      }

我有5个按钮。一个通用的"转换",从一个文本框中获取一个数字,然后从另一个文本框中获取一个基数(2-16),一旦"转换"按钮被点击,它将数字转换为指定的基数。其他按钮是:Base2, Base3, Base8, Base16。我必须为每个转换编写方法并从它们指定的按钮

调用它们

我必须调用属于按钮的方法

如何添加一个按钮来调用Base10转换方法?

在方法内部有两个对方法本身的调用,第一个将把它扔进一个以StackOverflowException结束的循环。只需从方法中删除这些调用,并可能将其重命名为更有意义的东西,因为它不仅转换为二进制:

public static string IntToBase(int value, char[] basechars)
{
    string result = string.Empty;
    int conversion = basechars.Length;
    do
    {
        result = basechars[value % conversion] + result;
        value = value / conversion;
    }
    while (value > 0);
    return result;
}

现在你有工作的东西了。

我假设您在文本框中有要转换的数字,我将其称为txtNumber。在应该将数字转换为二进制的按钮的处理程序中,您可以将文本框中的文本解析为数字,然后调用该方法将其转换为二进制:

int num = Int32.Parse(txtNumber.Text);
string binary = IntToBase(num, new char[] { '0', '1' });

对方法的调用与我从方法中删除的代码相同,除了它使用变量num而不是16


实际上在框架中有一些方法可以转换成不同的进制(除了3进制),但这可能不是你应该在课程中学习的内容。总之,那就是:

public static string IntToBase(int value, int base)
{
  return Convert.ToString(value, base);
}