Re: "byte orders" question
Re: "byte orders" question
- Subject: Re: "byte orders" question
- From: Koen van der Drift <email@hidden>
- Date: Sat, 26 Nov 2011 18:17:23 -0500
On Nov 26, 2011, at 4:23 PM, Scott Ribe wrote:
> No, you're not ;-) You read a string that is presumably already Base64 encoded, then you stuff it into an NSData, then you Base64 encode that, then you decode it, leaving you with the original Base64 encoding intact...
>
> Instead of:
>
>> NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding];
>> NSString *base64String = [data base64EncodedString];
>> NSData * base64DecodedData = [NSData dataFromBase64String:base64String];
>
> I think you just need:
>
> NSData * base64DecodedData = [NSData dataFromBase64String:string];
I think you are right. This works (see below). Thanks for pointing (no pun) that out.
> The actual byte-swapping code looks OK:
>
>> for (n = 0 ; n < (2 * count) ; n++)
>> {
>> ((u_int32_t *) result)[n] = ntohl((u_int32_t) ((u_int32_t *) dataToConvert)[n]);
>> }
>
> Although there's a superfluous cast there that might be a clue that you're just slinging code in without understanding it...
I'm pretty sure I messed up something. One of the reasons I posted it here :)
After spitting through the internets, what I am using now is this:
NSData *base64DecodedData = [NSData dataFromBase64String: @"Q5YIjESWO5JDlpIbRzMVL0OW="];
for (NSInteger n = 0; n < 4; n++)
{
u_int32_t value;
[base64DecodedData getBytes: &value range: NSMakeRange( n*4, sizeof( u_int32_t ) )];
u_int32_t result = CFSwapInt32HostToBig( value );
NSLog(@"%u", result);
}
This gives:
1133906060
1150696338
1133941275
1194530095
This correspond to the values I am getting using the unpack function in a Perl script that does what I need, so I think I am on the right track. The perl script continues with $float = unpack("f", pack("I", $i));, where $i is one of the four numbers above. This gives the expected values for the floats. So I may not need the ntohl() function at all.
Now I need to figure out how to go from u_int_32 to float.
- Koen.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden