OC 2 10 16 进制相互转换

来源:互联网 发布:硬笔软件app 编辑:程序博客网 时间:2024/05/20 05:31

warning 2to10

NSString *base = @"0110011011001100";NSLog(@"%@",base);int i = 0,j = 0;for (int k = 0; k<base.length; k++) {    j = [[base substringWithRange:NSMakeRange(k, 1)] intValue];    j= j *powf(2, base.length-k-1);    i += j;}NSString *base10 = [NSString stringWithFormat:@"%d",i];NSLog(@"%@",base10);

warning 10to16

NSString *base16 = [[NSString alloc]initWithFormat:@"%x",[base10 intValue]];NSLog(@"%@",base16);

warning 16to2

    NSMutableDictionary *hexDic = [[NSMutableDictionary alloc]initWithCapacity:16];    [hexDic setObject:@"0000" forKey:@"0"];    [hexDic setObject:@"0001" forKey:@"1"];    [hexDic setObject:@"0010" forKey:@"2"];    [hexDic setObject:@"0011" forKey:@"3"];    [hexDic setObject:@"0100" forKey:@"4"];    [hexDic setObject:@"0101" forKey:@"5"];    [hexDic setObject:@"0110" forKey:@"6"];    [hexDic setObject:@"0111" forKey:@"7"];    [hexDic setObject:@"1000" forKey:@"8"];    [hexDic setObject:@"1001" forKey:@"9"];    [hexDic setObject:@"1010" forKey:@"a"];    [hexDic setObject:@"1011" forKey:@"b"];    [hexDic setObject:@"1100" forKey:@"c"];    [hexDic setObject:@"1101" forKey:@"d"];    [hexDic setObject:@"1110" forKey:@"e"];    [hexDic setObject:@"1111" forKey:@"f"];NSString *str = [[NSString alloc]init];    for (int i = 0; i<[base16 length]; i++) {        NSRange rage;        rage.length = 1;        rage.location = i;        NSString *key = [base16 substringWithRange:rage];       str = [NSString stringWithFormat:@"%@%@",str,[NSString stringWithFormat:@"%@",[hexDic objectForKey:key]]];    }NSLog(@"%@",str);

}
@end

0 0
原创粉丝点击