十进制->十六进制
Byte bytes[]={0xA6,0x27,0x0A};
NSString *strIdL = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[]]];
十六进制->十进制
NSString *rechargeInfo = @"0xff055008";
NSString *cardId2 = [rechargeInfosubstringWithRange:NSMakeRange(,)];
cardId2 = [NSStringstringWithFormat:@"%ld",strtoul([cardId2UTF8String],,)]; NSString
*str = @"0xff055008"; //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 unsignedlongred
= strtoul([str UTF8String],,); //strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以: unsignedlongred
= strtoul([@"0x6587"UTF8String],,); NSLog(@"转换完的数字为:%lx",red);
#pragma mark --字符串处理方法
//字符串处理方法
+(NSString *)cutString:(NSString *)str{
NSString *targetStr=nil;
if (str.length>) {
targetStr=[str substringFromIndex:]; }
return targetStr;
}
+(NSString *)transToStr:(NSData *)data{ NSString *str=[NSStringstringWithFormat:@"%@",data];
return str;
} //字符串补零操作
+(NSString *)addZero:(NSString *)str withLength:(int)length{
NSString *string = nil;
if (str.length==length) {
return str;
}
if (str.length<length) {
NSUInteger inter = length-str.length;
for (int i=;i< inter; i++) {
string = [NSString stringWithFormat:@"0%@",str];
str = string;
}
}
return string;
} +(NSString *)stringFromHexString:(NSString *)hexString {// char *myBuffer = (char *)malloc((int)[hexStringlength] / +);
bzero(myBuffer, [hexString length] / + );
for (int i =; i < [hexString length] - ; i += ) {
unsigned int anInt;
NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, )];
NSScanner * scanner = [[NSScanneralloc] initWithString:hexCharStr] ;
[scanner scanHexInt:&anInt];
myBuffer[i / ] = (char)anInt;
NSLog(@"myBuffer is %c",myBuffer[i /] );
}
NSString *unicodeString = [NSStringstringWithCString:myBuffer encoding:];
NSLog(@"———字符串=======%@",unicodeString);
return unicodeString;
} //10进制转16进制
+(NSString *)ToHex:(longlong int)tmpid
{
NSString *nLetterValue;
NSString *str =@"";
long longint ttmpig;
for (int i =; i<; i++) {
ttmpig=tmpid%;
tmpid=tmpid/;
switch (ttmpig)
{
case :
nLetterValue =@"A";break;
case :
nLetterValue =@"B";break;
case :
nLetterValue =@"C";break;
case :
nLetterValue =@"D";break;
case :
nLetterValue =@"E";break;
case :
nLetterValue =@"F";break;
default:nLetterValue=[[NSStringalloc]initWithFormat:@"%lli",ttmpig]; }
str = [nLetterValue stringByAppendingString:str];
if (tmpid == ) {
break;
} }
return str;
} //将16进制的字符串转换成NSData
+ (NSMutableData *)convertHexStrToData:(NSString *)str {
if (!str || [str length] == ) {
return nil;
} NSMutableData *hexData = [[NSMutableDataalloc] initWithCapacity:];
NSRange range;
if ([str length] % == ) {
range = NSMakeRange(,);
} else {
range = NSMakeRange(,);
}
for (NSInteger i = range.location; i < [strlength]; i += ) {
unsigned int anInt;
NSString *hexCharStr = [str substringWithRange:range];
NSScanner *scanner = [[NSScanneralloc] initWithString:hexCharStr]; [scanner scanHexInt:&anInt];
NSData *entity = [[NSDataalloc] initWithBytes:&anIntlength:];
[hexData appendData:entity]; range.location += range.length;
range.length = ;
} return hexData;
} + (NSString *)convertDataToHexStr:(NSData *)data {
if (!data || [data length] == ) {
return @"";
}
NSMutableString *string = [[NSMutableStringalloc] initWithCapacity:[datalength]]; [data enumerateByteRangesUsingBlock:^(constvoid *bytes, NSRange byteRange,BOOL *stop) {
unsigned char *dataBytes = (unsignedchar*)bytes;
for (NSInteger i =; i < byteRange.length; i++) {
NSString *hexStr = [NSStringstringWithFormat:@"%x", (dataBytes[i]) &0xff];
if ([hexStr length] == ) {
[string appendString:hexStr];
} else {
[string appendFormat:@"0%@", hexStr];
}
}
}]; return string;
}
//十进制准换为十六进制字符串
+ (NSString *)hexStringFromString:(NSString *)string{
NSData *myD = [stringdataUsingEncoding:NSUTF8StringEncoding];
Byte *bytes = (Byte *)[myDbytes];
//下面是Byte转换为16进制。
NSString *hexStr=@"";
for(int i=;i<[myDlength];i++) {
NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数 if([newHexStr length]==) hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr]; else hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
}
return hexStr;
}
+(NSString *) parseByteArray2HexString:(Byte[]) bytes
{
NSMutableString *hexStr = [[NSMutableString alloc]init];
int i = ;
if(bytes)
{
while (bytes[i] != '\0')
{
NSString *hexByte = [NSString stringWithFormat:@"%x",bytes[i] & 0xff];///16进制数
if([hexByte length]==)
[hexStr appendFormat:@"0%@", hexByte];
else
[hexStr appendFormat:@"%@", hexByte]; i++;
}
}
NSLog(@"bytes 的16进制数为:%@",hexStr);
return hexStr;
}

iOS -- 十进制、十六进制字符串,byte,data等之间的转换的更多相关文章

  1. 序列化之对象,字符串,byte数组,XML之间的转换(一)

    工作一年多了,越来越感到自己不能这样一直下去,在最好的青春里面却已经死了.被时间消磨了意志,被工作杀死了精神.我想,我只要活着,我就要去不断的要求自己,不断的去追求更高的山峰. 放眼四周,有趣的灵魂越 ...

  2. C# 16进制与字符串、字节数组之间的转换(转)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ...

  3. C# 16进制与字符串、字节数组之间的转换 (转载)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ...

  4. C#串口通讯,16进制与字符串、字节数组之间的转换。

    1.将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, ...

  5. C# 16进制与字符串、字节数组之间的转换

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToStrin ...

  6. C# 16进制与字符串、字节数组之间的转换(串口通讯中)

    1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ...

  7. 如何在Byte[]和String之间进行转换

    源自C#与.NET程序员面试宝典. 如何在Byte[]和String之间进行转换? 比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲.它是计算机物理内存保存的最基本单元. 字节(B):8个比特, ...

  8. Byte[]和BASE64之间的转换

    一. BASE64编码 把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是: l 大写的A-Z l 小写的a-z l 数字0-9 l '+' 和 '/' l 空 ...

  9. iOS全角符与半角符之间的转换

    iOS全角符与半角符之间的转换 相关资料: 函数『CFString​Transform』中文 详情: 问题 1.17-03-15,「有人在群里边问怎么把『半角』符字符串转换成『全角』字符串?」,百度的 ...

  10. JSON字符串和JS对象之间的转换

    JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象  JSON字符串 str JSON.parse(str) eval(str) eva ...

随机推荐

  1. Monkey与MonkeyRunner之间的区别

    为了支持黑盒自动化测试的场景,Android SDK提供了monkey和monkeyrunner两个测试工具,这两个测试工具除了名字类似外,还都可以向待测应用发送按键等消息,往往容易产生混淆,以下是他 ...

  2. CodeForces Round #320 Div2

    A. Raising Bacteria 计算一下x的bitcount就是答案. #include <iostream> #include <cstdio> #include & ...

  3. [转] NGINX宏观手记

    前言 任何一个工具都有它的灵魂所在,作为一个PHP程序员,我们可能仅仅使用了它的一小部分,这篇文章让你更加了解Nginx,本章大多都是总结.翻译.整理 ,希望你可以知道nginx不仅仅是PHP的附属品 ...

  4. jmeter非常好的博客收藏

    http://blog.sina.com.cn/s/blog_56c9b55c010148os.html

  5. 微信小程序开发 -- 获取当前页面路径

    Page.prototype就是this: 你在任何一个Page里面都可以使用route字段和setData()函数: 示例代码: /** * 生命周期函数--监听页面加载 */ onLoad: fu ...

  6. [linx学习篇] ssh远程服务器免密码

    第一步:生成密钥.在终端下执行命令: ssh-keygen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕.然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) i ...

  7. [转]查看Linux版本信息

    一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@S-CentOS home]# cat /proc/version Linux version 2.6 ...

  8. Linux命令之必须掌握的十条命令

    Linux现如今已经成为了软件行业最流行的操作系统,掌握Linux就成为了每一个开发者必备的专业技能. 为了方便大家学习,大学君在此为大家整理了在使用Linux时必须掌握的十条命令,希望大家能熟练掌握 ...

  9. 【bzoj1778】[Usaco2010 Hol]Dotp 驱逐猪猡 矩阵乘法+概率dp+高斯消元

    题目描述 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两 ...

  10. HDU——2067小兔的棋盘(卡特兰数&递推DP)

    小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...