我正在将一些Java代码移植到Objective C并且知道得足以让人头疼.有人能指出我对等于Double.doubleToLongBits和Float.floatToIntBits的objC吗?
这是我的MD5问题的另一个问题.我知道问题是ASCII字符©(0xa9,169).要么是我将字符插入字符串的方式,要么是高字节和低字节问题.
如果我
NSString *source = [NSString stringWithFormat:@"%c", 0xa9];
NSData *data = [source dataUsingEncoding:NSASCIIStringEncoding];
NSLog(@"\n\n ############### source %@ \ndata desc %@", source, [data description]);
CC_MD5([data bytes], [data length], result);
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
Run Code Online (Sandbox Code Playgroud)
结果:
######### source©[数据描述] =(null)
md5:d41d8cd98f00b204e9800998ecf8427e
值:int 169 char©
当我将编码更改为
NSData *data = [NSData dataWithBytes:[source UTF8String] length:[source length]];
Run Code Online (Sandbox Code Playgroud)
结果是
######### source©[数据描述] ="<"c2>
md5:6465dad1d31752be3f3283e8f70feef7
当我将编码更改为
NSData *data = [NSData dataWithBytes:[source UTF8String] …Run Code Online (Sandbox Code Playgroud)