我试图创建一个二进制到十进制计算器,但我无法进行任何实际有效的转换。首先,我想介绍一下我自己是一个完全了解目标 c 和一般编程的新手。因此,许多概念对我来说似乎很困难,所以我主要是在寻找最简单的理解方式,而不是最有效的方式。我目前有一个计算器,它可以接受输入并将其显示在标签中。这部分工作正常,我对此没有任何问题。存储输入的变量是_display = [[NSMutableString stringWithCapacity:20] retain];
这工作得很好,我可以相应地修改数据。我想做的是能够在另一个标签中显示转换的 NSString 。目前我已经尝试了一些解决方案并且没有任何体面的结果,这是最新的尝试
- (NSMutableString *)displayValue2:(long long)element
{
_str= [[NSMutableString alloc] initWithString:@""];
if(element > 0){
for(NSInteger numberCopy = element; numberCopy > 0; numberCopy >>= 1)
{
[_str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
}
else if(element == 0)
{
[_str insertString:@"0" atIndex:0];
}
else
{
element = element * (-1);
_str = [self displayValue2:element];
[_str insertString:@"0" atIndex:0];
NSLog(@"Prima for: %@",_str);
for(int i=0; i<[_str length];i++)
_str = _display;
NSLog(@"Dopo for: %@",_str);
}
return _str;
}
在我的视图控制器中,我有一个转换按钮设置,当按下它时,我想将第二个显示字段设置为十进制等效值。这就像我将 displayValue2 设置为返回我选择的字符串一样工作。我所需要的只是帮助使这种转换起作用。目前,这段代码导致在我的课堂上显示“不完整的实现”。请提供帮助,并为那些抽出时间提供帮助的人欢呼。