我们需要将以下数据类型转换为二进制文件:
对此的任何帮助都将受到高度赞赏。
我的代码是:
根据上述链接,我们有
- (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,那么我得到的输出是:
0000000000000000000000000001010000000000000000000000000000010100
当我在在线转换器中看到它时,这是错误的。
答案 0 :(得分:2)
long
只有32位。由于该方法名为longlongToBinary
,因此请将所有long
变量更改为long long
。这将为您提供正在使用的64位。
现在您已将大多数变量更改为long long
,请将循环变量i
更改回int
,并将1l
常量更改为1ll
。
答案 1 :(得分:2)
文字1l
仍然很长。这就是你看两次输出的原因。将文字更改为1ll