现在的位置: 首页 > 综合 > 正文

iOS 开发之 16进制转换

2013年09月12日 ⁄ 综合 ⁄ 共 1714字 ⁄ 字号 评论关闭

方法一:

IOS 十进制转十六进制

NSString *hexString = [NSString stringWithFormat:@"%@",[[NSString alloc] initWithFormat:@"%1x",整形参数]];

方法二:

// 16进制转换  

- (void)transPassToHex{

    

   pwdToHex = @"";

    int length = [loginBookPassword length];

    for(int i = 0; i < length; i++){

        NSRange range = NSMakeRange(i, 1);

        NSString * str = [loginBookPassword substringWithRange:range];

        // 转换位ascii码整数

        int asciiCode = [str characterAtIndex:0];

        [self transAsciiToHex:asciiCode];

    }

    

    //BOL_HexPassword = [[NSString alloc]initWithString:tranBuffer];    

    NSLog(@"pwdToHex===%@",pwdToHex);

}

- (void)transAsciiToHex:(int) asciiCode{

        int n = asciiCode / 16;

    int e = asciiCode % 16;

    

    if (n > 16) {

        [self transAsciiToHex : n];

    }else{

        if (n >= 10) {

            [self transToEn: n];

        }else if(n > 0){

            pwdToHex = [pwdToHex stringByAppendingFormat:@"%d",n];

        }

    }

    

    if (e >= 10) {

        [self transToEn: e];

    }else{

        pwdToHex = [pwdToHex stringByAppendingFormat:@"%d",e];

    }

}

- (void)transToEn:(int) e{

    switch (e) {

        case 10:

            pwdToHex = [pwdToHex stringByAppendingString:@"A"];

            break;

            

        case 11:

            pwdToHex = [pwdToHex stringByAppendingString:@"B"];

            break;

            

        case 12:

            pwdToHex = [pwdToHex stringByAppendingString:@"C"];

            break;

            

        case 13:

            pwdToHex = [pwdToHex stringByAppendingString:@"D"];

            break;

            

        case 14:

            pwdToHex = [pwdToHex stringByAppendingString:@"E"];

            break;

            

        case 15:

            pwdToHex = [pwdToHex stringByAppendingString:@"F"];

            break;

            

        default:

            break;

    }

}

抱歉!评论已关闭.