0

我们需要将以下数据类型转换为二进制:

  1. 长长转二进制
  2. NSUInteger 到二进制

对此的任何帮助将不胜感激。

我的代码是:

根据上面的链接,我们有

 - (NSString *) longlongToBinary:(long long) val {

long long num = val;
NSString *res = [NSString string];

for (long long i=63; i>=0; i--)
{

    long long div = 1l<<i;
    if ((num&div)==div) res = [res stringByAppendingString:@"1"];
    else res = [res stringByAppendingString:@"0"];
}

return res;

}

如果 val 是 20,那么我得到的输出是:

00000000000000000000000000001010000000000000000000000000000010100

当我在在线转换器中看到它时,这是错误的。

4

2 回答 2

2

long只有 32 位。由于该方法已命名longlongToBinary,因此将所有long变量更改为long long. 这将为您提供正在使用的 64 位。

现在您已将大多数变量更改为long long,将循环变量更改i回 anint并将1l常量更改为1ll

于 2013-03-08T20:17:23.297 回答
2

文字1l仍然很长。这就是为什么您会看到两次输出。将文字更改为1ll

于 2013-03-08T20:26:20.817 回答