美文网首页
进制转换

进制转换

作者: 马小悦 | 来源:发表于2016-12-09 11:49 被阅读48次

1.十进制转二进制

2.二进制转十进制

3.十进制转十六进制

4.十六进制转十进制

5.二进制转十六进制

6.十六进制转二进制

//  十进制转二进制

+(NSString*)toBinarySystemWithDecimalSystem:(NSString*)decimal

{

intnum=[decimal intValue];

intremainder=0;//余数

intdivisor=0;//除数

NSString*prepare=@"";

while(true)

{

remainder=num%2;

divisor=num/2;

num=divisor;

prepare=[prepare stringByAppendingFormat:@"%d",remainder];

if(divisor==0)

{

break;

}

}

NSString*result=@"";

for(inti=prepare.length-1;i>=0;i--)

{

result=[result stringByAppendingFormat:@"%@",

[prepare substringWithRange:NSMakeRange(i,1)]];

}

returnresult;

}

//  二进制转十进制

+(NSString*)toDecimalSystemWithBinarySystem:(NSString*)binary

{

intll=0;

inttemp=0;

for(inti=0;i

{

temp=[[binary substringWithRange:NSMakeRange(i,1)]intValue];

temp=temp*powf(2,binary.length-i-1);

ll+=temp;

}

NSString*result=[NSStringstringWithFormat:@"%d",ll];

returnresult;

}

//十进制转十六进制

NSString *hexString = [NSString stringWithFormat:@"%@",[[NSString alloc] initWithFormat:@"%1x",整形参数]];

//十六进制转十进制

UInt64 mac1 =  strtoul([@"abcd1234" UTF8String], 0, 16);

//如果在有溢出,使用下面方法:

unsigned long long result = 0;

NSScanner *scanner = [NSScanner scannerWithString:@"abcd12345678"];

[scanner scanHexLongLong:&result];

//十六进制转二进制

-(NSString *)getBinaryByhex:(NSString *)hex

{

NSMutableDictionary  *hexDic = [[NSMutableDictionary alloc] init];

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"];

NSMutableString *binaryString=[[NSMutableString alloc] init];

for (int i=0; i<[hex length]; i++) {

NSRange rage;

rage.length = 1;

rage.location = i;

NSString *key = [hex substringWithRange:rage];

//NSLog(@"%@",[NSString stringWithFormat:@"%@",[hexDic objectForKey:key]]);

binaryString = [NSString stringWithFormat:@"%@%@",binaryString,[NSString stringWithFormat:@"%@",[hexDic objectForKey:key]]];

}

//NSLog(@"转化后的二进制为:%@",binaryString);

return binaryString;

}

//二进制转十六进制

- (NSString *)convertDataToHexStr:(NSData *)data {

if (!data || [data length] == 0) {

return @"";    }    NSMutableString *string = [[NSMutableString alloc] initWithCapacity:[data length]];    [data enumerateByteRangesUsingBlock:^(const void *bytes, NSRange byteRange, BOOL *stop) {        unsigned char *dataBytes = (unsigned char*)bytes;        for (NSInteger i = 0; i < byteRange.length; i++) {            NSString *hexStr = [NSString stringWithFormat:@"%x", (dataBytes[i]) & 0xff];            if ([hexStr length] == 2) {                [string appendString:hexStr];            } else {                [string appendFormat:@"0%@", hexStr];            }        }    }];

return string;}

相关文章

  • 【iOS 开发】二进制、十进制、十六进制相互转换的方法

    十进制转换为二进制 十进制转换为十六进制 二进制转换为十六进制 十六进制转换为二进制 二进制转换为十进制 作者:J...

  • python 的进制转换

    十进制, 二进制相互转换 十进制转换为二进制 二进制转换为十进制 十进制, 八进制相互转换 十进制转换为八进制 八...

  • Flutter 进制转换

    10进制转换位16进制 16进制转换位10进制

  • c#学习(一)进制初步认识

    进制转换进制转换表.jpg 二进制的转换 十进制转2进制/8进制/16进制 2进制/8进制/16进制/转十进制 2...

  • python 各种进制的转换

    转换二进制: bin()函数 转换十进制:int()函数 转换十六进制:hex()函数 转换8进制:oct()函数

  • 进制转换

    十进制转换为二进制 185 = 10111001 十进制转换为八进制 185=271 十进制转换为十六进制 185...

  • iOS开发中的进制转换

    进制转换 开发中常用的进制有二进制、十进制、十六进制,此文章旨在说明进制转换的规则、流程;最后用OC写了进制转换的...

  • python 进制转换

    如何表示二进制 任意进制之间的转换 任意进制转换成二进制--bin 任意进制转换成十进制--int 3.任意进制转...

  • python-基础篇练习题

    通过代码实现如下转换:二进制转换成十进制:v = “0b1111011”十进制转换成二进制:v = 18八进制转换...

  • iOS进制之间转换

    1 进制的转换(一) 1.1 问题 完成以下数字的进制转换: 35转换成二进制; 101101 转换成十进制; 1...

网友评论

      本文标题:进制转换

      本文链接:https://www.haomeiwen.com/subject/pdpemttx.html