制作二进制计算器应用程序(快速)

时间:2017-11-19 22:24:23

标签: ios swift binary calculator

对于Uni的一个项目,我决定制作一个二进制计算器应用程序,以便更多地了解编码。

我已经完成了一个普通的计算器应用程序(但它只有两个数字:1; 0),但我无法弄清楚如何让计算器像它应该的那样工作(1010 + 1101 = 10111而不是2111)。所有帮助表示赞赏。

var numberEkraanil:Double = 0;
var eelmineNumber:Double = 0;
var tehesmatemaatikat = false
var operation = 0;

@IBOutlet weak var label: UILabel!

@IBAction func Numbers(_ sender: UIButton) {
    if tehesmatemaatikat == true
    {
        label.text = String(sender.tag-1)
        numberEkraanil = Double(label.text!)!
        tehesmatemaatikat = false
    }
    else
    {
        label.text = label.text! + String(sender.tag-1)
        numberEkraanil = Double(label.text!)!
    }
}

@IBAction func nupud(_ sender: UIButton) {
    if label.text != "" && sender.tag != 6 && sender.tag != 8
    {
        eelmineNumber = Double(label.text!)!
        if sender.tag == 3 //Liitmine
        {
            label.text = "+";
        }
        else if sender.tag == 4 //Lahutamine
        {
            label.text = "-";
        }
        else if sender.tag == 5 // Korrutamine
        {
            label.text = "x";
        }
        else if sender.tag == 7 // Jagamine
        {
            label.text = "÷";
        }

        operation = sender.tag
        tehesmatemaatikat = true;
    }
    else if sender.tag == 8
    {
        if operation == 3
        {
          label.text = String(eelmineNumber + numberEkraanil)
        }
        else if operation == 4
        {
            label.text = String(eelmineNumber - numberEkraanil)
        }
        else if operation == 5
        {
            label.text = String(eelmineNumber * numberEkraanil)
        }
        else if operation == 7
        {
            label.text = String(eelmineNumber / numberEkraanil)
        }
    }
    else if sender.tag == 6
    {
        label.text = ""
        eelmineNumber = 0;
        numberEkraanil = 0;
        operation = 0;
    }

2 个答案:

答案 0 :(得分:1)

您可以将二进制数转换为十进制数。例如,将“1010”转换为int“10”,然后反转该过程以再次获取二进制文件。在您的示例“1010 + 1101 = 10111”中,您可以将“1010”转换为“10”和“13”,使用这些小数进行普通计算并将结果转换为“23”,这将为您提供“23”。 / p>

但当然还有其他方法。本网站可以帮助您进行二进制计算。这是一个数学网站:http://www.calculator.net/binary-calculator.html

答案 1 :(得分:0)

您需要将基数10写入基数2,将基数2写入基数10转换器。这是两个伪代码:

要将二进制字符串转换为整数,请执行以下操作:

  • 将结果值设为零。
  • ,而输入字符串不为空:
    • 将结果值向左移1位
    • 从输入字符串中删除最左边的字符,如果是1,则在结果值中添加1。

要将int转换为二进制字符串,请执行相反的操作:

  • 将您的int复制到临时变量scratch
  • 将输出字符串设置为空字符串。
  • 虽然划痕不是0:
    • 如果刮伤&& 1为0,在输出字符串的左侧附加“0”
    • 如果刮伤&& 1为1,在输出字符串的左侧附加“1”
    • 向右移动1位

一旦你有了这些积木让你的计算器工作是非常简单的。当用户输入二进制字符串时,将其转换为整数工作值。对整数值进行计算,然后将整数结果转换为二进制字符串以供显示。