文档章节

iOS中NSString转换成HEX(十六进制)-NSData转换成int

海二少
 海二少
发布于 2017/08/11 14:32
字数 296
阅读 132
收藏 0
NSString *str = @"0xff055008";  
//先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型  
unsigned long red = strtoul([str UTF8String],0,16);  
//strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以:  
unsigned long red = strtoul([@"0x6587" UTF8String],0,0);  
NSLog(@"转换完的数字为:%lx",red);  

// 十六进制转换为普通字符串的。   
+ (NSString *)stringFromHexString:(NSString *)hexString { //   
   
charchar *myBuffer = (charchar *)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)];   

 

© 著作权归作者所有

海二少
粉丝 0
博文 87
码字总数 48854
作品 0
程序员
私信 提问
IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换

NSData 与 NSString NSData-> NSString NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding]; NSString->NSData NSString *aString = @"1234abcd"; ......

iKaisa
2013/05/06
408
0
[C++][IO]fstream用法

fstream用法 1. 打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename:  要打开的文件...

guitar_zp
2011/08/09
0
0
c++ cout格式化输出函数详解

这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等。通过本文,您可以完全脱离scanf/printf,仅使用cout来完成一切...

lieefu
2015/10/30
667
0
c++ cout 控制精度、宽度、进制

设置以上这些属性均有两种写法 一种是调用cout的方法 暂且叫做方法写法 一种是用到iomanip的函数 叫做控制器写法 一、精度 控制器写法: cout << setprecision(5); cout << fixed; 方法写法:...

apachecn_飞龙
2014/03/06
0
0
XXL-HEX v1.2.0,面向对象的 WebAPI 框架

版本1.2.0新特性 1、Client端,新增Javascript版本实现:前端JS可使用提供的Client,直接调用XXL-HEX的加密API接口; (示例文件见 "xxl-hex/xxl-hex-example/src/main/webapp/jsclient.html...

许雪里
2016/10/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

北漂的生活成本到底有多大?聊一聊我最真实的感受

北京的生活成本是不是很大?这是很多朋友心中的困惑,有很多我身边的朋友在没毕业之前就觉得北京的生活成本很大,在找工作的时候直接放弃了找北京工作的打算,目标定向了成都、杭州、西安等这...

gzc426
31分钟前
12
0
Hystrix 分布式系统限流、降级、熔断框架

为什么需要Hystrix 在大中型分布式系统中,通常系统很多依赖,如下图: 在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题:如网络连接缓慢,资源繁忙,暂时...

Java架构师ya七
51分钟前
9
0
YUM仓库配置及命令详解

导读 通过源代码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群集时存在一定的局限性。那么就需...

问题终结者
今天
13
0
docker初学者

docker简介 在真正使用这项技术之前很难深刻的理解它的概念。 从简单的方面来说,docker就是一个轻量级的虚拟机。接下去的学习首先不妨抱着这个想法来看,让后慢慢寻找差别,最终我们会回来试...

街角的小丑
今天
19
0
了解下Hz单位的意思

今天看到计组的突然看到Hz这个单位,突然不知道它是啥意思,就百度了解啦下。 赫,是频率的基本单位,为纪念验证电磁波存在的德国物理学家海因里希·鲁道夫·赫兹(Heinrich Rudolf Hertz)而...

南桥北木
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部