首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将十六进制字节(无可显示字符)转换为前导为零的8位二进制

将十六进制字节(无可显示字符)转换为前导为零的8位二进制
EN

Stack Overflow用户
提问于 2014-11-21 05:34:16
回答 1查看 352关注 0票数 0

(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); }

EN

回答 1

Stack Overflow用户

发布于 2014-11-21 06:40:07

找到了答案:

代码语言:javascript
复制
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];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27049977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档