进制转换

//二进制转10进制
NSString *base = string;
  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];
 //十进制转16进制
  NSString *base16 = [[NSString alloc]initWithFormat:@"%x",[base10 intValue]];
//16进制转2进制
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);

//16进制转10进制
          NSString * temp10 = [NSString stringWithFormat:@"%lu",strtoul([result UTF8String],0,16)]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容