Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
#1

побитывая операция и массив - C++

06.07.2010, 14:14. Просмотров 427. Ответов 9
Метки нет (Все метки)

подскажите как массив чисел перевести в массив единиц и нулей с помощью побитовых операций
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2010, 14:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос побитывая операция и массив (C++):

операция <<::>> - C++
имею код char Car::*Get_Marka(){ return marka ; } char Car::*Get_Color() { return color ; } bool Car::Get_Rastamojena() { return...

Непонятная операция - C++
Всем доброго времени суток! Помогите разобраться, ранее не встречал: Есть enum Sute {clubs,diamonds,hearts,spades} в main() мы...

Тернарная операция - C++
Всем доброго времени суток. Вот написал прогу #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; ...

операция повторения - C++
#include &lt;iostream&gt; using namespace std; int main() { int match, win, ni, por; cout&lt;&lt;&quot;Введите количество матчей: &quot;; ...

Атомарная операция - C++
У меня есть такой класс: class CClass { public: bool state() const {return state_;} private: bool state_ = false; ...

Операция ИЛИ - C++
Добрый вечер) Я новичок в СИ поэтому если вопрос глупый не пинайте) Возможно ли сделать подобную операцию в СИ: IF (a == 3 ИЛИ 4) {...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2010, 15:03 #2
Если имеется в виду массив единиц и нулей, то так можно сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
///////////////////////////////////////////////////////////////////////////////////////
//  Как массив чисел перевести в массив единиц и нулей с помощью побитовых операций.
///////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
 
unsigned get_num_from_array(unsigned* arr, size_t  arr_size)
{   
    unsigned  res_num = 0;    
    while(arr_size--)
    {        
        (res_num <<= 1) |= *arr++;
    }
    return  res_num;
}
 
int main()
{
    unsigned a[] = {1, 0, 0, 1};
    std::cout << get_num_from_array(a, sizeof(a) / sizeof(a[0]))
              << std::endl;
    return 0;
}
0
suv121
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
06.07.2010, 15:08  [ТС] #3
а можно на стандартном си
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2010, 15:20 #4
Сразу даже не врубился, что ж тут нестандартное. Стандартнее этого уже не бывает:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
///////////////////////////////////////////////////////////////////////////////////////
//  Как массив чисел перевести в массив единиц и нулей с помощью побитовых операций.
///////////////////////////////////////////////////////////////////////////////////////
#include <cstdio>
 
unsigned get_num_from_array(unsigned* arr, size_t  arr_size)
{   
    unsigned  res_num = 0;    
    while(arr_size--)
    {        
        (res_num <<= 1) |= *arr++;
    }
    return  res_num;
}
 
int main()
{
    unsigned a[] = {1, 0, 0, 1};
    printf("%u\n", get_num_from_array(a, sizeof(a) / sizeof(a[0])));
    return 0;
}
1
PointsEqual
06.07.2010, 15:23
  #5

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
Стандартнее этого уже не бывает:
....

0
easybudda
Модератор
Эксперт CЭксперт С++
9624 / 5572 / 946
Регистрация: 25.07.2009
Сообщений: 10,699
06.07.2010, 15:32 #6
Цитата Сообщение от Mr.X Посмотреть сообщение
Стандартнее этого уже не бывает:
ещё как бывает!
Цитата Сообщение от Mr.X Посмотреть сообщение
#include <cstdio>
нет в стандартном С cstdio, за то есть stdio.h
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.07.2010, 15:43 #7
Цитата Сообщение от easybudda Посмотреть сообщение
ещё как бывает!

нет в стандартном С cstdio, за то есть stdio.h
Честно говоря, уже давно меня мучает вопрос: откуда так много изучающих чистый C, и для чего они это делают?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.07.2010, 05:16 #8
почитай что-нибудь по C, который существует сам по себе

знаешь что такое long long n; ?
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.07.2010, 21:37 #9
long long не нужен
нужен int64_t
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.07.2010, 01:39 #10
long long не ограничен 64мя битами

Добавлено через 5 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
 
#include <stdio.h>
 
int main(void)
{
    int *p = (int []) { 1, 2, 3 };
    
    for (int i = 0; i < 3; i++)
        printf("%d" "\n", p[i]);
    
    return 0;
}
а такое ты видал ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2010, 01:39
Привет! Вот еще темы с ответами:

Операция присваивания (=) - C++
Добрый день, интересует вот что: правильно ли я считаю, что в int x = .0 + 1F + 4L; 1) Сперва все операнды сложения (по правую...

операция switch - C++
switch(c)//char c=f.get() { case ' ': ne=true; break; case '\t': ne=true; break; break; case '\n': ne=true; case EOF:

Условная операция - C++
Приветствую. Ребят, объясните пожалуйста, почему данная функция возвращает в обоих случаях модуль числа т.е. число без знака. (n &lt; 0 )?...

Условная операция - C++
можно ли зделать такое условие с помощью условной операции (тернарного оператора)? if ((x+n)&lt;0 || sin(z)&lt;0) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2010, 01:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru