Задать вопрос

Как разобратся с моим кодом?

Нужно написать код для перевода из десятиричной системы исчисления в шестнадцатиричную.
Есть код, написан в аппкоде.
Уже 3-й день мучаюсь с ним и не могу понять, что не так? Помогите, пожалуйста.

NSString * dechex(int value)
{
int basa = 16;
int initialResult = value;
int initialResultTake = value;
int secondaryOutcome = 0;
NSString *string = @"";

for (int i = 0; initialResult > i; i++)
{
initialResult = initialResult / basa;

secondaryOutcome = initialResultTake % basa;

initialResultTake = initialResult;

switch (secondaryOutcome)
{
case 10:
{
string = @"A";
break;
}
case 11:
{
string = @"B";
break;
}
case 12:
{
string = @"C";
break;
}
case 13:
{
string = @"D";
break;
}
case 14:
{
string = @"E";
break;
}
case 15:
{
string = @"F";
break;
}
default:
{
string = [NSString stringWithFormat:@"%i", secondaryOutcome];
break;
}
}

NSLog(@"%@", string);

}
return string;
}
int main(int argc, char *argv[])
{

dechex(12021);

return 0;
}
  • Вопрос задан
  • 2586 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@rowdyro
NSString * dechex(int value)
{
    const NSString* chars = @"0123456789ABCDEF";
    size_t base = chars.length;
    NSString* result = @"";
    while (value >= base) {
        result = [NSString stringWithFormat:@"%@%@",[chars substringWithRange:NSMakeRange(value % base,1)], result];
        value = value / base;
    }
    result = [NSString stringWithFormat:@"%@%@",[chars substringWithRange:NSMakeRange(value,1)], result];
    NSLog(@"%@", result);
    return result;
}
Ответ написан
Комментировать
morozovdenis
@morozovdenis
NSString * hexFromDex(int a)
{
	return [NSString stringWithFormat:@"%X", a];
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы