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;
    }
  • 相关阅读:
    JavaScript——DOM或以树形展示的Web页面
    数字金额大写和小写转换
    Jquery—Jquery异步功能实例
    哈希—— POJ 3349 Snowflake Snow Snowflakes
    字节和字符的差别
    Kali Linux 安全渗透教程<第三更>1.2 安全渗透所需工具
    Git基础
    LeetCode Implement Stack using Queues
    HDU 4421 Bit Magic(2-sat)
    js判段URL是否可用(js判段网络是否不可用)
  • 原文地址:https://www.cnblogs.com/gulong/p/4993829.html
Copyright © 2011-2022 走看看