Ios 制作二进制计算器应用程序(swift)
在Uni的一个项目中,我决定制作一个二进制计算器应用程序来学习更多关于编码的知识 我已经完成了一个普通的计算器应用程序(但它只有两个数字:1;0),但我不知道如何让计算器正常工作(1010+1101=10111而不是2111)。感谢所有的帮助Ios 制作二进制计算器应用程序(swift),ios,swift,binary,calculator,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 va
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;
}
您可以将二进制数转换为十进制数。例如,将“1010”转换为int“10”,然后反向处理以再次获取二进制文件。在您的示例“1010+1101=10111”中,您可以将“1010”和转换为“10”和“13”,用这些小数进行普通计算,并将结果“23”转换为“23”
当然还有其他的方法。这个网站可以帮助你进行二进制计算。这是一个数学网站:。您需要编写一个10进制到2进制的转换器和一个2进制到10进制的转换器。以下是这两种方法的伪代码: 要将二进制字符串转换为整数,请执行以下操作:
- 将结果值种子设定为零
- 当输入字符串不为空时:
- 将结果值向左移动1位
- 从输入字符串中删除最左边的字符,如果是1,则在结果值中添加1
- 将int复制到scratch变量,
scratch
- 将输出字符串设置为空字符串
- 当scratch不是0时:
- 如果scratch&&1为0,则在输出字符串的左侧追加一个“0”
- 如果scratch&&1为1,则在输出字符串的左侧追加一个“1”
- 向右移动1位
一旦你有了这些积木,让你的计算器工作就相当简单了。当用户输入二进制字符串时,将其转换为整数工作值。对整数值进行计算,然后将整数值结果转换为二进制字符串以供显示。可能的重复需要将文本输入转换为二进制数字,将结果的二进制转换为字符串。我建议大家读一下基础转换。(提示:查看二进制位移位运算符
以及按位and运算符&&
)每当您有一个较长的if-then-else if
构造时,您应该使用不同的方法,如switch语句。此外,标记不是处理不同按钮的好方法。我建议将插座连接到每个按钮,然后比较发送器以查看其匹配的插座:切换发送器{case plusButton:;case minusButton:}