Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 18:09   #1
Molotoff
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 20
По умолчанию Булевый массив в int

Доброго времени суток, уважаемые форумчане!
Вновь вынужден просить помощи у вас
Сижу и думаю, как можно динамический массив типа bool преобразовать в переменную типа unsigned int.
например, 0110010101 - 405
заранее благодарен!
Molotoff вне форума Ответить с цитированием
Старый 06.05.2009, 18:50   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

юзай биты. любо сделай union из массива битов и инта, либо юзай сдвиги.
vvviperrr вне форума Ответить с цитированием
Старый 06.05.2009, 19:02   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

От так как-нибудь:
Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;


void getbits(int k)
{
 int i,m=1;
 m <<=9;
 for(i=0; i<10; i++)
  {
   if(k&m) cout<<1;
   else cout<<0;
   m>>=1;
  }
  cout<<endl;
}

int toDec(int arr[], int n)
{
 int i,m=1;
 int rez=0;
 for(i=n-1; i>=0; i--)
  {
   if(arr[i]) rez = rez | m;
   m<<=1;
  }
  return rez;
}

int main()
{
const int N=10;
int arr[N]={0,1,1,0,0,1,0,1,0,1};

cout<<toDec(arr,N)<<endl;

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 04:01   #4
Molotoff
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 20
По умолчанию

большое спасибо за код, но я думал, что есть возможность просто указать компилятору, где находится этот массив битов и просто считать как int.
я такое делал с другими типами данных, только там чтение шло из файла, можно ли такое же проделать с оперативной памятью?
Molotoff вне форума Ответить с цитированием
Старый 07.05.2009, 10:41   #5
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

Бит не адрессуем( на него нельзя установить указатель) = нужен спецкод.
("")(Э_Є)("") вне форума Ответить с цитированием
Старый 07.05.2009, 12:04   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Может использовать bitset из STL? Там вроде имеется метод to_ulong для преобразования в unsigned long, а работа осуществляется практически как с массивом бит.
ЗЫ. переменные типа bool - занимают не 1 бит, а 1 байт или даже 4 (в зависимости от реализации), поэтому так просто массив bool в int не перевести
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
char to int kezman Общие вопросы C/C++ 3 24.07.2008 08:59
из char в int llin Общие вопросы C/C++ 13 11.07.2008 06:51
из char в int?? Mika Общие вопросы C/C++ 4 20.06.2008 15:18
перевод из int в массив char. Freeman Общие вопросы C/C++ 5 30.05.2008 17:49
int to str andrey4623 Общие вопросы C/C++ 2 04.02.2008 17:44