C: преобразовать в целое, используя битыC: преобразовать в целое, используя биты
Мне нужно, чтобы получить целое значение от битовых массивов 0, 1.
Я хочу передать целые массивы и получить десятичное число используя бит-оператор.
Ниже приведено то, что я пробовал, но не работает, когда пытался передать int массивы, он работает с char * array. Есть ли способ передать int массивы и преобразовать их в десятичное число? Я хочу использовать бит-оператор.
int toInt(int* bin_arr) {
int val = 0;
while (*bin_arr)
val = (val << 1) | (*bin_arr++ == '1');
return val;
}
Заранее спасибо.
Арифметические операции обычно используются, чтобы делать то, что вы хотите. Выполнение этого с помощью бит-операций (и только бит-операций) сложнее, чем того стоит. –
Что означает «целые массивы»? Вы имеете в виду массивы, содержащие только целые числа 1 и 0? –
Исправление. Просто целое число –