Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарабатывай на сервисах MQL5. Это просто!
StrikeR
88
StrikeR 2013.06.09 20:38 

есть булевский массив, то есть теоретически заполненый только 0 и 1. 

что нужно нашаманить что бы прочитать его скажем как ulong, или инт, а дальше уже шаманить с цифрами. 

хоть направление какое нить дайте )

o_O
Модератор
23473
o_O 2013.06.09 20:50  
StrikeR:

есть булевский массив, то есть теоретически заполненый только 0 и 1. 

что нужно нашаманить что бы прочитать его скажем как ulong, или инт, а дальше уже шаманить с цифрами. 

хоть направление какое нить дайте )

bool b=true;

ulong m=(ulong)b;

int k=int(b);

Igor Konyashin
3102
Igor Konyashin 2013.06.09 20:52  

Приведение типов, да.

Выше уже написали)

Можно еще почитать об этом здесь

StrikeR
88
StrikeR 2013.06.09 20:54  

не не )

мне бы

 

bool arr[100500]

разбить на строчки по 32-64 бита и представить их как числа в двоичной системе

вот сижу голову ломаю 

o_O
Модератор
23473
o_O 2013.06.09 20:59  
StrikeR:

вот сижу голову ломаю 

1. операции побитового сдвига >>, << и &

2. или

StrikeR
88
StrikeR 2013.06.09 22:53  
uint get_id(bool &arr[])
{
   uint temp[];
   int size = ArrayRange(arr,0);
   int num_of_elements = (int)ceil(size/32)+1;
   ArrayResize(temp,num_of_elements);
   
   for(int i=0;i<num_of_elements;i++)
   {
      uint t=0;
      int end = i*32+32;
      if(i == num_of_elements-1)
         end = size;
      for(int p=i*32;p<end;p++)
      {
         if(arr[p])
            t=t*2+1;
         else
            t=t*2+0;
      } 
      temp[i]=t;
   }
   uint id=temp[0];
   for(int i=0;i<num_of_elements-1;i++)
      id = id ^ temp[i+1];
   
   return id;
}
что то такое высралось и вроде работает ) мож кому понадобится
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий