(80 -> 1000 0000,65-> 0110 0101)。
我发现了这一点:[如何将NSInteger或NSString转换为二进制(字符串) value](https://stackoverflow.com/questions/1908845/how-to-convert-nsinteger-or-nsstring-to-a-binary-string-value),,但似乎没有使用前导零。
谁能告诉我如何添加前导0,如果他们转换的二进制小于8位,而不使用任何额外的框架?
更新:
我已经找到了一种方法来做到这一点,但它似乎并不有效。通过检查字符串的长度,如果长度小于8,我只需在其中添加缺少的0即可。下面是长度为6的示例,因此为了涵盖所有情况,我将需要8个案例。有没有更好的方法呢?
if ([str length]==6) { str=[NSMutableString stringWithFormat:@"%@%@",@"00",str]; NSLog(@"Binary version: %@", str); }
发布于 2014-11-21 06:40:07
找到了答案:
NSInteger theNumber = mynumber;
NSMutableString *str = [NSMutableString string];
for(NSInteger numberCopy = theNumber; numberCopy > 0; numberCopy >>= 1)
{
// Prepend "0" or "1", depending on the bit
[str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
for(int i= [str length];i < 8;i++){
str=[NSMutableString stringWithFormat:@"%@%@",@"0",str];
}https://stackoverflow.com/questions/27049977
复制相似问题