十进制->十六进制

Byte bytes[]={0xA6,0x27,0x0A};

NSString *strIdL  = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[0]]];

十六进制->十进制

NSString *rechargeInfo =  @"0xff055008";

NSString *cardId2 = [rechargeInfosubstringWithRange:NSMakeRange(2,2)];

cardId2 = [NSStringstringWithFormat:@"%ld",strtoul([cardId2UTF8String],0,16)];

NSString
*str = @
"0xff055008";
//先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型
unsignedlongred
= strtoul([str UTF8String],
0,16);
//strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以:
unsignedlongred
= strtoul([@
"0x6587"UTF8String],0,0);
NSLog(@"转换完的数字为:%lx",red);

#pragma mark --字符串处理方法

//字符串处理方法

+(NSString *)cutString:(NSString *)str{

NSString *targetStr=nil;

if (str.length>9) {

targetStr=[str substringFromIndex:9];

}

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=0;i< inter; i++) {

string = [NSString
stringWithFormat:@"0%@",str];

str = string;

}

}

return string;

}

+(NSString *)stringFromHexString:(NSString *)hexString {//

char *myBuffer = (char *)malloc((int)[hexStringlength] /
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 = [[NSScanneralloc]
initWithString:hexCharStr] ;

[scanner scanHexInt:&anInt];

myBuffer[i / 2] = (char)anInt;

NSLog(@"myBuffer is %c",myBuffer[i /2] );

}

NSString *unicodeString = [NSStringstringWithCString:myBuffer
encoding:4];

NSLog(@"———字符串=======%@",unicodeString);

return unicodeString;

}

//10进制转16进制

+(NSString *)ToHex:(longlong
int)tmpid

{

NSString *nLetterValue;

NSString *str =@"";

long longint 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=[[NSStringalloc]initWithFormat:@"%lli",ttmpig];

}

str = [nLetterValue stringByAppendingString:str];

if (tmpid ==
0) {

break;

}

}

return str;

}

//将16进制的字符串转换成NSData

+ (NSMutableData *)convertHexStrToData:(NSString *)str {

if (!str || [str
length] == 0) {

return nil;

}

NSMutableData *hexData = [[NSMutableDataalloc]
initWithCapacity:8];

NSRange range;

if ([str length] %2 ==
0) {

range = NSMakeRange(0,2);

} else {

range = NSMakeRange(0,1);

}

for (NSInteger i = range.location; i < [strlength]; i +=
2) {

unsigned int anInt;

NSString *hexCharStr = [str
substringWithRange:range];

NSScanner *scanner = [[NSScanneralloc]
initWithString:hexCharStr];

[scanner scanHexInt:&anInt];

NSData *entity = [[NSDataalloc]
initWithBytes:&anIntlength:1];

[hexData appendData:entity];

range.location += range.length;

range.length =
2;

}

return hexData;

}

+ (NSString *)convertDataToHexStr:(NSData *)data {

if (!data || [data
length] == 0) {

return @"";

}

NSMutableString *string = [[NSMutableStringalloc]
initWithCapacity:[datalength]];

[data enumerateByteRangesUsingBlock:^(constvoid *bytes,
NSRange byteRange,BOOL *stop) {

unsigned char *dataBytes = (unsignedchar*)bytes;

for (NSInteger i =0; i < byteRange.length; i++) {

NSString *hexStr = [NSStringstringWithFormat:@"%x", (dataBytes[i]) &0xff];

if ([hexStr
length] == 2) {

[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=0;i<[myDlength];i++)

{

NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数

if([newHexStr
length]==1)

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 = 0;

if(bytes)

{

while (bytes[i] !=
'\0')

{

NSString *hexByte = [NSString
stringWithFormat:@"%x",bytes[i] &
0xff];///16进制数

if([hexByte
length]==1)

[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. bzoj2324

    出题人真 口袋迷 很容易发现这是一道费用流的题目 很显然这个问题有两个难点: 保证走到某个点时之前序号的点都被走过 保证每个点都走 对于1,我们换个说法,一个人走到该点时经过的点的序号都小于该点--- ...

  2. BZOJ2870: 最长道路tree

    题解: 子树分治的做法可以戳这里:http://blog.csdn.net/iamzky/article/details/41120733 可是码量... 这里介绍另一种好写又快的方法. 我们还是一颗 ...

  3. UVALive Proving Equivalences (强连通分量,常规)

    题意: 给一个有向图,问添加几条边可以使其强连通. 思路: tarjan算法求强连通分量,然后缩点求各个强连通分量的出入度,答案是max(入度为0的缩点个数,出度为0的缩点个数). #include ...

  4. android ListView注意事项

    所有问题,都是自己遇到过的. 但内容,有一半是自己写的,也有一半是复制过来. 所以,写成原创还请原谅 1. ListView添加标题后(addHeader())后,使用listView.getAdap ...

  5. [转] “无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝

    原文 Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”问题修正 原来在Win7下Visua ...

  6. java 基础之数据类型

    java 数据类型这个地方面试的时候会被经常问到,很多人并不注意这个问题,今天带大家全面了解一下.java数据类型主要分:1.基本数据类型 2.引用数据类型 3.空类型 下面一一介绍. 基本数据类型包 ...

  7. mysql远程连接出现 ERROR 2003 (HY000): Can't connect to MySQL server on IP

    修改了如下两个位置,解决了这个问题: 修改/etc/mysql/my.cof配置文件:因为mysql默认只允许本机连接 修改远程连接用户权限:远程连接的用户被设置为不允许远程连接 首先修改/etc/m ...

  8. msp时钟设置程序

    吐槽一下MSP430需要明白的东西: 在430中,一个时钟周期 = MCLK晶振的倒数.如果MCLK是8M,则一个时钟周期为1/8us: 一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基 ...

  9. java开发 时间类型的转换

    1.String转date SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Strin ...

  10. n个筛子的点数

    题目:把n个筛子扔到地上,所有筛子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率. 分析: 方法1:递归. 要求概率,那么我们首先只需要求出每个s出现的次数/(6^n).怎么求s的次 ...