【发布时间】:2015-01-31 02:33:29
【问题描述】:
我会转换
NSString *myString = @"0x10 0x1c 0x37 0x00"; //Aquired reading text file using NSString methods..
到
unsigned char convertedfrommyString[] = { 0x10, 0x1c, 0x37, 0x00 };
我的目标是获取它们,然后使用以下代码交换它:
unsigned char convertedfrommyString[] = { 0x10, 0x1c, 0x37, 0x00 };
int data = *((int *) convertedfromString);
NSLog(@"log = %08x", data);
输出应该是:
log = 00371c10
有什么帮助吗?
编辑
从 Jan Baptiste Younès 和 Sven 那里,我找到了理解我的问题并使用以下代码解决的方法:
NSString *myString = [[@"0x10 0x1c 0x37 0x00" stringByReplacingOccurrencesOfString:@"0x" withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""];
unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:myString];
[scanner scanHexInt:&result];
int reverse = NSSwapInt(result);
NSLog(@"scanner: %8u", result);
NSLog(@"bytes:%08x", result);
NSLog(@"reverse:%08x (that is what i need!)", reverse);
真的不错! 但是我可以接受两个答案吗?
【问题讨论】:
标签: objective-c c