我在资源文件夹中有一个二进制文件(file.bin),我想读取它并将其显示为二进制文件。这个想法是将二进制信息放入数组中,但是首先,我尝试在 UILabel 中显示它,如下所示:
` NSData *databuffer;
NSString *字符串数据;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"bin"];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
if (myData) {
stringdata = [NSString stringWithFormat:@"%@",[myData description]];
labelfile.text = stringdata;
}
`
但它以十六进制显示数据。我如何以二进制形式将其放入 NSMutableArray 中?
谢谢。
我不知道是否有任何本机可以做到这一点,但我可以提出一个解决方案。你为什么不做你自己的函数来进行转换。这是我的例子:
在获得十六进制值的地方:
NSString *str = @"Af01";
NSMutableString *binStr = [[NSMutableString alloc] init];
for(NSUInteger i=0; i<[str length]; i++)
{
[binStr appendString:[self hexToBinary:[str characterAtIndex:i]]];
}
NSLog(@"Bin: %@", binStr);
解决方法函数:
- (NSString *) hexToBinary:(unichar)myChar
{
switch(myChar)
{
case '0': return @"0000";
case '1': return @"0001";
case '2': return @"0010";
case '3': return @"0011";
case '4': return @"0100";
case '5': return @"0101";
case '6': return @"0110";
case '7': return @"0111";
case '8': return @"1000";
case '9': return @"1001";
case 'a':
case 'A': return @"1010";
case 'b':
case 'B': return @"1011";
case 'c':
case 'C': return @"1100";
case 'd':
case 'D': return @"1101";
case 'e':
case 'E': return @"1110";
case 'f':
case 'F': return @"1111";
}
return @"-1"; //means something went wrong, shouldn't reach here!
}
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)