Есть ли в C++ функции, которые позволяют ввести число в определенной системе счисления, а потом перевести ее в другую?
Короче, у меня есть задача. Вводится число A, а потом вводится число B (в 16сс) длинной A. Затем нужно перевести число B в 8сс. Каким образом это можно сделать? Видел функцию atoi, но так и не понял, как ее использовать и подходит ли она сюда.
Ну во-первых, как мне ввести число в 16сс? Вот введу через cin 12AB, а он выведет ошибку. Или же я могу ввести это в качестве string, но как тогда потом перевести этот string в int при помощи itoa и при этом изменить сс с 16 в 8? itoa ведь число в строку переводит, а числом я никак не введу 12AB
Умар Машуков, ввод числа в шестандцатиричной системе осуществляется следующим образом std::cin >> std::hex >> i;
Число переводить никуда не нужно, число - это инвариант, оно может быть представлено в любом виде: в десятичном, восьмиричном, шестнадцатиричном и тд.
Евгений Шатунов, я вроде смог решить задачу, но сайт, куда я ее загружаю, ругается на itoa и говорит использовать в качестве альтернативы atol, хотя это вообще не то, что надо. Если я делаю так - cin>>hex>>N>>oct и ввожу FF, то он выдает максимум 255, но никак не 377. Именно поэтому я и решил использовать itoa, ведь при помощи него все нормальное работает. Но как я сказал, сайт ругается на данную функцию
Умар Машуков, мои слова относятся только к процессу решения твоего текущего вопроса.
Если твой текущий вопрос решен с помощью данного ответа, тебе стоит отметить ответ как решение.
Твой текущий вопрос безусловно является частью твоей задачи, но твоя задача не является частью твоего текущего вопроса. Поэтому решение твоей задачи не должно останавливать тебя от отметки решения.
После этого ты можешь задать новый вопрос, в котором уже покажешь свой код и объяснишь свою новую проблему.