将十进制转换为二进制
我想将十进制数转换为二进制数。我正在使用这种方法:
- (NSMutableString*)intStringToBinary:(long long)element{
NSMutableString *str = [[NSMutableString alloc] initWithString:@""];
for(NSInteger numberCopy = element; numberCopy > 0; numberCopy >>= 1)
{
[str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
return str;
}
如果数字“元素”>0,则一切都会顺利。如果数字<0,则存在问题。例如,该方法无法转换数字“-1”。我可以做什么来解决这个问题?提前致谢!!
I want to convert decimal number in binary number. I'm using this method:
- (NSMutableString*)intStringToBinary:(long long)element{
NSMutableString *str = [[NSMutableString alloc] initWithString:@""];
for(NSInteger numberCopy = element; numberCopy > 0; numberCopy >>= 1)
{
[str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
return str;
}
everything is going fine if the number "element" is >0. If the number is <0 there is the problem. For examle the method can't convert the number "-1". What can i do to solve the problem? Thanks in advance!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要为标志添加额外的位。
示例:
1xxxx
表示二进制数+ xxxx
。0yyyy
表示二进制数- yyyy
。You need an extra bit for the sign.
Example:
1xxxx
represents the binary number+ xxxx
.0yyyy
represents the binary number- yyyy
.这是一种使用 Wallar 算法在 Python 中实现此目的的方法。输入和输出是列表。
Here is a way to do it in Python using Wallar's Algorithm. The input and output are lists.