// TransformNumber.h文件
// 将字符串数字转换为2,8,16进制
#import <Foundation/Foundation.h>
@interface TransformNumber : NSObject
/**
* 返回转换后的值,只能转换2,8,16进制
*
* @para str 需要转换的值
*
* @para sys 需要转换的进制
*/
+(NSString *)transformNumber:(NSString *)str withNumberSystem:(NSString *)sys;
@end
//TransformNumber.m文件
#import "TransformNumber.h"
@implementation TransformNumber
+(NSString *)transformNumber:(NSString *)str withNumberSystem:(NSString *)sys
{
NSMutableString *mstring = [NSMutableString stringWithFormat:@"X"];
NSString *bitString = [NSString stringWithFormat:@"0123456789ABCDEF"];
longlong int tmp = [str intValue],num = [sys intValue], p, a, b;
if(num ==2)
{
a = 1;
b = 1;
}elseif (num == 8)
{
a = 7;
b = 3;
}elseif (num == 16)
{
a = 15;
b = 4;
}else
{
NSLog(@"您输入的进制错误!请输入2,8,16进制!");
returnnil;
}
while(tmp!=0)
{
p=tmp&a;
NSString *str1=[NSString stringWithFormat:@"%c",[bitString characterAtIndex:p]];
[mstring insertString:str1 atIndex:0];
tmp=tmp>>b;
}
return [mstring substringWithRange:NSMakeRange(0, [mstring length]-1)];
}
@end
iOS数字字符串转换为二进制八进制十六进制
最新推荐文章于 2022-08-29 15:30:06 发布