iOS数字字符串转换为二进制八进制十六进制

来源:互联网 发布:淘宝天猫属于b2b吗 编辑:程序博客网 时间:2024/05/04 06:32

// 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


0 0