zoukankan      html  css  js  c++  java
  • 进制之间的转换

    1.1 十进制转2进制

    -(NSString *)binaryFromInteger:(NSInteger)index{
        NSString *str = @"";
        while (index != 1) {
            NSInteger two = index % 2;
            str = [NSString stringWithFormat:@"%ld%@",two,str];
            index /= 2;
        }
        return [NSString stringWithFormat:@"%ld%@",index,str];
    }

    1.2 十进制转8进制

    //十进制转八进制
    -(NSString *)octonaryFromInteger:(NSInteger)index{
        return [NSString stringWithFormat:@"%lo",index];
    }

    1.3 十进制转16进制

    -(NSString *)hexFromInteger:(NSInteger)index{
        return [NSString stringWithFormat:@"%lx",index];
    }

    2.1 2进制转十进制

    -(NSInteger)integerFromBinary:(NSString *)binary{
        
        NSInteger count = binary.length;
        NSInteger number = 0;
        for (NSInteger i = count; i > 0; i --) {
            NSInteger index = [[binary substringWithRange:NSMakeRange(i - 1, 1)] integerValue];
            number += index * powf(2, count - i);
        }
        
        return number;
    }

    2.2 8进制转十进制

    -(NSInteger)integerFromOctonary:(NSString *)octonary{
        
        NSInteger count = octonary.length;
        NSInteger number = 0;
        for (NSInteger i = count; i > 0; i --) {
            NSInteger index = [[octonary substringWithRange:NSMakeRange(i - 1, 1)] integerValue];
            number += index * powf(8, count - i);
        }
        
        return number;
    }

    2.3 16进制转十进制

    -(NSInteger)integerFromHex:(NSString *)hex{
        NSInteger count = hex.length;
        NSInteger number = 0;
        NSDictionary *dict = @{@"0":@"0",@"1":@"1",@"2":@"2",@"3":@"3",
                               @"4":@"4",@"5":@"5",@"6":@"6",@"7":@"7",
                               @"8":@"8",@"9":@"9",@"a":@"10",@"b":@"11",
                               @"c":@"12",@"d":@"13",@"e":@"14",@"f":@"15"};
        for (NSInteger i = count; i > 0; i --) {
            NSString *letter = [hex substringWithRange:NSMakeRange(i - 1, 1)];
            NSInteger index = [[dict objectForKey:[letter lowercaseString]] integerValue];
            number += index * powf(16, count - i);
        }
        return number;
    }
  • 相关阅读:
    SpringBoot+AOP+自定义注解
    在win10上安装Linux系统安装
    spring、springMvc、springBoot和springCloud的联系与区别
    spring与springMVC的区别
    spring boot与spring mvc的区别是什么?
    返回的响应代码
    Java为什么要实现Serializable接口
    @Data注解和如何使用,lombok
    使用generatorConfig自动生成实体类与dao的接口以及mappers映射文件
    MyBatis 配置
  • 原文地址:https://www.cnblogs.com/gulong/p/4993829.html
Copyright © 2011-2022 走看看