Objective-C NSString NSData Byte等转换

Objective-C NSString NSData Byte等转换

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

int i= 123;

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

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

i= [strintValue];

float f = [strfloatValue];


{

// NSData --> NSString

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

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

NSString *string = [[NSStringalloc]initWithData: dataencoding:NSUTF8StringEncoding];

}

{

// NSString --> NSData

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

NSData *data = [stringdataUsingEncoding:NSUTF8StringEncoding];

}

{

// NSData --> Byte

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

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

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

}

{

// NSString --> hex

NSString *string =@"1a1b1c1d";

constchar *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;

}

}

}

}

 

 

int main (int argc, const char * argv[])

{


    @autoreleasepool {

        

        NSString * path = @"Users/qianfeng/Desktop/f1.rtf";

     NSString * temp = @"Hello Friend";

        

     int i = 100;

     float f = 98.3333f;

        

        NSMutableData * writer = [[NSMutableData alloc] init];

        [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];

        [writer appendBytes:&i length:sizeof(i)];

        [writer appendBytes:&f length:sizeof(f)];

        [writer writeToFile:path atomically:YES];

        [writer release];

         

        int ii;

        float ff;

        NSString * ttemp;

        NSData * reader = [NSData dataWithContentsOfFile:path];

        ttemp = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [templength])] encoding:NSUTF8StringEncoding];

        [reader getBytes:&ii range:NSMakeRange([temp length], sizeof(ii))];

        [reader getBytes:&ff range:NSMakeRange([temp length] + sizeof(ii), sizeof(ff))];

        NSLog(@"String:%@ int:%i float:%f", ttemp, ii, ff);

        

        [temp release];

        [ttemp release];

        [path release];

        

    }

    return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值