您的位置:首页 > 移动开发 > Objective-C

Objective-C NSString NSData Byte CGFloat等转换

2015-02-05 10:43 399 查看
Objective-C NSString NSData Byte等转换

// 整形转NSString,其他数字类型类似

int i= 123;

NSString *str = [NSString stringWithFormat:@"%d",
i];

// NSSting转整形,转其他数字类型类似

i= [str intValue];

float f = [str floatValue];

{

// NSData --> NSString

Byte array[] = {0, 0, 0, 0};

NSData *data = [NSData dataWithBytes: array length:sizeof(array)];

NSString *string = [[NSStringalloc] initWithData:
data encoding:NSUTF8StringEncoding];

}

{

// NSString --> NSData

NSString *string = @"Hello,World!";

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

}

{

// NSData --> Byte

Byte array[] = {0, 0, 0, 0};

NSData *data = [NSData dataWithBytes: array length:sizeof(array)];

Byte *bytes = (Byte *)[data bytes];

NSLog(@"bytes
= %hhu",bytes[0]);

// Byte --> CGFloat

CGFloat battey = (CGFloat)bytes[0];

NSLog(@"battery = %f",battey);

}

{

// NSString --> hex

NSString *string = @"1a1b1c1d";

const char *buf = [string UTF8String];

NSMutableData *data = [NSMutableDatadata];

if (buf)

{

uint32_t len = strlen(buf);

char singleNumberString[3] = {'\0', '\0', '\0'};

uint32_t singleNumber = 0;

for(uint32_t i = 0 ; i < len; i+=2)

{

if ( ((i+1) < len) && isxdigit(buf[i]) && (isxdigit(buf[i+1])) )

{

singleNumberString[0] = buf[i];

singleNumberString[1] = buf[i + 1];

sscanf(singleNumberString, "%x", &singleNumber);

uint8_t tmp = (uint8_t)(singleNumber & 0x000000FF);

[dataappendBytes:(void *)(&tmp)length:1];

}

else

{

break;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐