16进制String和int互转
2015-01-14 00:00
148 查看
摘要: 16进制String和int互转
附:
+(unsigned long)getIntFromHexString:(NSString *) str{ //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 //strtoul如果传入的字符开头是“0x”,那么第三个参数是0也可以 return strtoul([str UTF8String],0,16); } +(NSString *)toHex:(long long int)tmpid length:(int)length { NSString *nLetterValue; NSString *str =@""; long long int ttmpig; for (int i = 0; i<9; i++) { ttmpig=tmpid%16; tmpid=tmpid/16; switch (ttmpig) { case 10: nLetterValue =@"A";break; case 11: nLetterValue =@"B";break; case 12: nLetterValue =@"C";break; case 13: nLetterValue =@"D";break; case 14: nLetterValue =@"E";break; case 15: nLetterValue =@"F";break; default:nLetterValue=[[NSString alloc]initWithFormat:@"%lli",ttmpig]; } str = [nLetterValue stringByAppendingString:str]; if (tmpid == 0) { break; } } while (str.length < length) { str = [NSString stringWithFormat:@"0%@",str]; } return [NSString stringWithFormat:@"0x%@",str]; }
附:
// 十六进制转换为普通字符串的。 + (NSString *)stringFromHexString:(NSString *)hexString { // char *myBuffer = (char *)malloc((int)[hexString length] / 2 + 1); bzero(myBuffer, [hexString length] / 2 + 1); for (int i = 0; i < [hexString length] - 1; i += 2) { unsigned int anInt; NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)]; NSScanner * scanner = [[[NSScanner alloc] initWithString:hexCharStr] autorelease]; [scanner scanHexInt:&anInt]; myBuffer[i / 2] = (char)anInt; } NSString *unicodeString = [NSString stringWithCString:myBuffer encoding:4]; NSLog(@"------字符串=======%@",unicodeString); return unicodeString; } //普通字符串转换为十六进制的。 + (NSString *)hexStringFromString:(NSString *)string{ NSData *myD = [string dataUsingEncoding:NSUTF8StringEncoding]; Byte *bytes = (Byte *)[myD bytes]; //下面是Byte 转换为16进制。 NSString *hexStr=@""; for(int i=0;i<[myD length];i++) { NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数 if([newHexStr length]==1) hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr]; else hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr]; } return hexStr; } //int 转data int i = 1; NSData *data = [NSData dataWithBytes: &i length: sizeof(i)]; //data 转int int i; [data getBytes: &i length: sizeof(i)];
相关文章推荐
- Android蓝牙通信,把硬件传过来的16进制的int数据转成16进制的string数据
- c#中int 转string 16进制和16转double的方法
- Java 16进制的String转int
- c#中int 转string 16进制和16转double的方法
- C# int 转 16进制的字符串 in to hex string
- c#中int 转string 16进制和16转double的方法
- JAVA 中int类型转String类型的通常方法,有三种:
- JAVA: int、String的类型互相转换
- Java中String与Int怎样相互转换
- Scanner扫描器获取int、String-源代码解析
- CString,int,string,char*之间的转换
- JAVA功能代码《1》----把Strings转换成int和把int转换成String
- int数字与string数字的相互转换
- C# Enum,Int,String的互相转换 枚举转换
- JAVA中int、String的类型转…
- C++ Daily 《4》----一个简单的 int to string 的方法
- Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应
- JAVA中int、String的类型转换
- 【C++】int与string的互转
- C++中int类型转换成string类型的方法