1、十进制转换为二进制

/**
十进制转换为二进制
@param decimal 十进制数
@return 二进制数
*/
+ (NSString *)getBinaryByDecimal:(NSInteger)decimal {   NSString *binary = @"";
  while (decimal) {
    binary = [[NSString stringWithFormat:@"%ld", decimal % 2] stringByAppendingString:binary];
    if (decimal / 2 < 1) {
      break;
    }
    decimal = decimal / 2 ;
    }   if (binary.length % 4 != 0) {
    NSMutableString *mStr = [[NSMutableString alloc]init];
    for (int i = 0; i < 4 - binary.length % 4; i++) {
      [mStr appendString:@"0"];
    }
    binary = [mStr stringByAppendingString:binary];
  }
  return binary;
}

2、十进制转换为十六进制

/**
将十进制转化为十六进制 @param decimal 10进制 int类型
@return 16进制
*/
+ (NSString*)changDecimalToHex:(NSInteger)decimal {
  NSString* intDecimalStr = [[NSString alloc] initWithFormat:@"%1lx", (long)decimal];
  NSString* hexString = [NSString stringWithFormat:@"%@", intDecimalStr];   if (hexString.length == 5) {
    return [[NSString stringWithFormat:@"0%@", hexString] uppercaseString];
  } else {
    return [hexString uppercaseString];
  }
}

3、 二进制转换为十六进制

/**
二进制转换成十六进制 @param binary 二进制数
@return 十六进制数
*/
+ (NSString *)getHexByBinary:(NSString *)binary { NSMutableDictionary *binaryDic = [[NSMutableDictionary alloc] initWithCapacity:16];
[binaryDic setObject:@"0" forKey:@"0000"];
[binaryDic setObject:@"1" forKey:@"0001"];
[binaryDic setObject:@"2" forKey:@"0010"];
[binaryDic setObject:@"3" forKey:@"0011"];
[binaryDic setObject:@"4" forKey:@"0100"];
[binaryDic setObject:@"5" forKey:@"0101"];
[binaryDic setObject:@"6" forKey:@"0110"];
[binaryDic setObject:@"7" forKey:@"0111"];
[binaryDic setObject:@"8" forKey:@"1000"];
[binaryDic setObject:@"9" forKey:@"1001"];
[binaryDic setObject:@"A" forKey:@"1010"];
[binaryDic setObject:@"B" forKey:@"1011"];
[binaryDic setObject:@"C" forKey:@"1100"];
[binaryDic setObject:@"D" forKey:@"1101"];
[binaryDic setObject:@"E" forKey:@"1110"];
[binaryDic setObject:@"F" forKey:@"1111"]; if (binary.length % 4 != 0) { NSMutableString *mStr = [[NSMutableString alloc]init];;
for (int i = 0; i < 4 - binary.length % 4; i++) { [mStr appendString:@"0"];
}
binary = [mStr stringByAppendingString:binary];
}
NSString *hex = @"";
for (int i=0; i<binary.length; i+=4) { NSString *key = [binary substringWithRange:NSMakeRange(i, 4)];
NSString *value = [binaryDic objectForKey:key];
if (value) { hex = [hex stringByAppendingString:value];
}
}
return hex;
}

4、十六进制转二进制

/**
十六进制转换为二进制 @param hexString 十六进制数
@return 二进制数
*/
+ (NSString *)getBinaryByHexString:(NSString *)hexString {
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 *binary = @"";
for (int i = 0; i < [hexString length]; i++) { NSString *key = [hexString substringWithRange:NSMakeRange(i, 1)];
NSString *value = [hexDic objectForKey:key.uppercaseString];
if (value) { binary = [binary stringByAppendingString:value];
}
}
return binary;
}

5、十六进制转十进制

/**
将十六进制转化为十进制 @param hexString 16进制 nsstring类型
@return 10进制
*/
+ (NSInteger)changHexToDecimal:(NSString*)hexString {
NSString* temp10 = [NSString stringWithFormat:@"%lu", strtoul([hexString UTF8String], 0, 16)];
int cycleNumber = [temp10 intValue];
return cycleNumber;
}

最新文章

  1. Module Zero学习目录
  2. 使用Adminlite + ASP.NET MVC5(C#) + Entityframework + AutoFac + AutoMapper写了个api接口文档管理系统
  3. LeetCode Number of Connected Components in an Undirected Graph
  4. 【转】Eclipse下导入外部jar包的3种方式
  5. hdoj - 5202 Rikka with string (BestCoder Round #37 ($))
  6. spring对数据库特殊字段的支持
  7. 坑爹CF April Fools Day Contest题解
  8. Warm up
  9. Contains Duplicate II ——LeetCode
  10. java 7K交通灯管理系统面试题
  11. linux_操作基本语句
  12. 扩展Python模块系列(三)----参数解析与结果封装
  13. dedesms中的导致生成静态页面多出&#65279空白行解决办法
  14. Python入门:购物车实例
  15. PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取
  16. cookie中存取中文
  17. K8S学习笔记之CentOS7集群使用Chrony实现时间同步
  18. [HTML]js读取XML文件并解析
  19. java线程池ThreadPoolExecutor类使用详解
  20. Spring整合MyBatis(三)sqlSessionFactory创建

热门文章

  1. C#中获取Excel文件的第一个表名
  2. Spring Boot 集成Swagger2生成RESTful API文档
  3. 2015.1.15 利用Oracle函数插入表结构 Bulk collect into 不用循环,简洁高效
  4. 第十四章 Spring MVC的工作机制与设计模式(待续)
  5. java反射专题三
  6. C#在线预览文档(word,excel,pdf,txt,png)
  7. leetcode643
  8. intellij idea 在执行maven的操作 install等会出现中文乱码?其他程序打印正常?
  9. PHP的count(数组)和strlen(字符串)的内部实现
  10. ReactNative安装配置