VoxelGod
@VoxelGod
Настройка шаблонов WordPress

Как правильно перевести из 16СС в 2СС?

Привет. Мне нужно ввести число в 16СС. Я это делаю так: scanf("%x", &read);.
Но теперь мне нужно определить, сколько бинарных разрядов потребуется для того, чтобы сохранить число в памяти.
Следовательно, мне нужно перевести число в 2СС. Как это можно сделать какой-нибудь одной функцией?
  • Вопрос задан
  • 1323 просмотра
Решения вопроса 1
@MiiNiPaa
А зачем переводить для определения значимого количества бит?

unsigned long long number;
std::cin >> std::hex >> number;

int bits = 0;
while(number != 0) {
    ++bits;
    number >>= 1;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C++
В дополнение к MiiNiPaa скажу, что все ваши числа и так хранятся в двоичной системе счисления, сегодняшняя популярная выч. техника с другими системами не работает. Другое дело - в какой СС вы хотите эти числа выводить на экран/в файл, в общем - преобразовывать в человеко-читаемую строку. Поэтому в целом вопрос сводится к чтению справки по аргументам printf или по директивам потоков C++.
Ответ написан
Комментировать
@abcd0x00
Как правильно перевести из 16СС в 2СС?

0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
A - 1010
B - 1011
C - 1100
D - 1101
E - 1110
F - 1111

1A - 0001 1010
AB - 1010 1011
FF - 1111 1111

ABFEC - 1010 1011 1111 1110 1100
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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