【发布时间】:2014-04-17 10:50:19
【问题描述】:
您好,我正在尝试在 Objective-C 中制作一个十进制到二进制数的转换器,但没有成功...到目前为止,我有以下方法,它是从 Java 中尝试翻译的类似方法。非常感谢任何使此方法有效的帮助。
+(NSString *) DecToBinary: (int) decInt
{
int result = 0;
int multiplier;
int base = 2;
while(decInt > 0)
{
int r = decInt % 2;
decInt = decInt / base;
result = result + r * multiplier;
multiplier = multiplier * 10;
}
return [NSString stringWithFormat:@"%d",result];
【问题讨论】:
-
相关:stackoverflow.com/questions/7911651/decimal-to-binary(您需要将生成的字符串转换为 NSString,但目标 c 是 c 的超集...
-
这是一个相当奇怪的算法。如果要转换为字符二进制,为什么不直接转为字符呢? (至少让
result成为long,因为它往往是一个非常大的数字。) -
(在 Java 中也有更直接的方法可以做到这一点。)
-
顺便说一句,这不是一个“十进制到二进制”的转换器,它是一个数值到字符的二进制转换器。传入的值不表示为十进制,但实际上,在内部,(在所有现代机器中)是一个二进制数。
标签: ios objective-c algorithm binary decimal