Я пишу программу, которая принимает числа, введенные пользователем, и сохраняет их в массив. Затем программа преобразует значения в десятичные числа и сохранит их в новом массиве. У меня возникла проблема с преобразованием двоичного значения в правильный размер бита.Преобразование десятичного в двоичный в C++ с правильным размером бита
Например, пользователь вводит 3
и 4
. Моя программа хранит и преобразует их в двоичные, что приводит к 11
и 100
. Как я могу получить его для хранения 011
и 100
?
Я считаю, что мне нужно будет преобразовать в массив символов или какую-то строку, но я не знаю, какие шаги я должен выполнить.
Вы можете использовать std :: string binary = std :: bitset <8> (num) .to_string(); здесь 8 представляет собой длину двоичного кода, который вам нужен, а num - это число, переданное пользователем. –
Вы даете правильный результат, если 3 равно 11, оно все равно совпадает с 011, поэтому я не вижу смысла делать это. Подумайте об этом, так как ваша проблема заключается в том, что вы никогда не знаете, как высокий тип пользователя и сколько нулей вы хотите добавить. Чтобы завершить то, что вы хотите сделать, бессмысленно. – FieryCod
Если вы не используете 3-битное поле бит, вы не можете хранить только три бита, и даже если вы все еще сохраняете в двоичном формате, где '11' ==' 011'. Ваш вопрос не имеет смысла. – EJP