zoukankan      html  css  js  c++  java
  • Objective C 十六进制 十进制互转

    十六进制转十进制:

    NSString *hexStr = @"0xff";
    UInt64 mac1 =  strtoul([hexStr UTF8String], 0, 16);
    NSLog(@"%llu",mac1);
    NSLog(@"十六进制转十进制 --->%lu",strtoul(hexStr.UTF8String, 0, 16));
    

    如果有溢出的话,使用scanner:

    NSString *hexStr1 = @"0x00000000027743330000000000714C9C";
    unsigned long long result = 0;
    NSScanner *scanner = [NSScanner scannerWithString:hexStr1];
    [scanner scanHexLongLong:&result];
    NSLog(@"%llu",result);
    

    十六进制转NSString

     NSString * str = @"68656C6C6F";
        NSMutableString * newString = [[NSMutableString alloc] init] ;
        int i = 0;
        while (i < [str length])
        {
            NSString * hexChar = [str substringWithRange: NSMakeRange(i, 2)];
            int value = 0;
            sscanf([hexChar cStringUsingEncoding:NSASCIIStringEncoding], "%x", &value);
            [newString appendFormat:@"%c", (char)value];
            i+=2;
        }
        NSLog(@"new str :%@",newString); 
    //-->new str :hello
    

    十进制转十六进制:

    NSLog(@"十进制转十六进制 --->%@",[NSString stringWithFormat:@"%x",255]);
    

    或者:

    +(NSString *)ToHex:(long long int)tmpid
    {
        NSString *nLetterValue;
        NSString *str =@"";
        long long int ttmpig;
        for (int i = 0; i<9; i++) {
            ttmpig=tmpid%16;
            tmpid=tmpid/16;
            switch (ttmpig)
            {
                case 10:
                    nLetterValue =@"A";break;
                case 11:
                    nLetterValue =@"B";break;
                case 12:
                    nLetterValue =@"C";break;
                case 13:
                    nLetterValue =@"D";break;
                case 14:
                    nLetterValue =@"E";break;
                case 15:
                    nLetterValue =@"F";break;
                default:nLetterValue=[[NSString alloc]initWithFormat:@"%lli",ttmpig];
                    
            }
            str = [nLetterValue stringByAppendingString:str];
            if (tmpid == 0) {
                break;
            }     
        }
        return str;
    }
    
  • 相关阅读:
    java第四次作业
    JAVA第三次作业
    Java第二次作业
    Java第一次作业
    android studio下载
    Android面试常问到的知识点
    [Java基础]List,Map集合总结
    搞ACM的你伤不起[转自RoBa]------(看一次,笑一次)
    06.5.1.Functions
    05.virsh命令的常用操作(kvm)
  • 原文地址:https://www.cnblogs.com/xiaoqiangink/p/13032158.html
Copyright © 2011-2022 走看看