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;}