原文链接
NSString
*str
= @"0xff055008";
unsigned long red
= strtoul([str UTF8String
],0,16);
unsigned long red
= strtoul([@"0x6587" UTF8String
],0,0);
NSLog(@"转换完的数字为:%lx",red
);
十六进制转换为普通字符串的。
+ (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
];
NSString
*hexStr
=@"";
for(int i
=0;i
<[myD length
];i
++)
{
NSString
*newHexStr
= [NSString stringWithFormat
:@"%x",bytes
[i
]&0xff];
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
)];