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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 15:40   #1
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию Побитовые операции

Написать программу, используя только побитовые операции и выполнить на
тестовых данных. В отчете представить листинг программы и результаты вычислений.
Представить исходные данные и/или результаты в двоичном виде:
Определить длину самой длинной цепочки единиц в переменной
unsigned long a.
Помогите написать
V_I_P вне форума Ответить с цитированием
Старый 13.10.2013, 16:15   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Основа - http://programmersforum.ru/showpost....79&postcount=2
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.10.2013, 19:58   #3
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

На C++
V_I_P вне форума Ответить с цитированием
Старый 14.10.2013, 06:49   #4
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Код:
#include <iostream>
using std::cout;



// поиск самой длинной битовой последовательности
int  bitseq(unsigned long a, int& e) {
     const int len = sizeof(a) << 3;
     int n = 0, p = 0;

     e = 0;
     for(int i = 0; i <= len; i++) {

         if(a & 1)
             n++;
         else {
             if(n > e) {
                p = i - n;
                e = --n;
              }
              n = 0;
         }

         if(! a)
             break;
         a >>= 1;
     }

     e = p + e;
     return p;
}



// вывод битового представление в выходной поток(консоль, файл)
void print_bin(std::ostream& hout, unsigned long a) {
     if(a != 0) {
          print_bin(hout, a >> 1);
          hout.put((char)(a & 1) + '0');
     }
}




int main(void) {
    unsigned long a = 0x3CEA1F34;

    // показать битовое представление
    print_bin(cout, a);
    cout << std::endl;

    // поиск
    int f, l;
    f = bitseq(a, l);
    if(f != l)
          cout << "first index: " << f << "\nlast  index: " << l << '\n';
    return 0;
}
Пример работы кода
Nuklon вне форума Ответить с цитированием
Старый 14.10.2013, 21:13   #5
V_I_P
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 19
По умолчанию

Спасибо большое
Цитата:
Ошибка 2 error C2039: cout: не является членом "std" c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 6
Ошибка 13 error C2039: endl: не является членом "std" c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 55
Ошибка 4 error C2039: ostream: не является членом "std" c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 7 error C2062: тип "unsigned long" не требуется c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 10 error C2065: cout: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 54
Ошибка 12 error C2065: cout: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 55
Ошибка 15 error C2065: cout: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 61
Ошибка 14 error C2065: endl: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 55
Ошибка 6 error C2065: hout: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 5 error C2065: ostream: необъявленный идентификатор c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 8 error C2143: синтаксическая ошибка: отсутствие ";" перед "{" c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 9 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 40
Ошибка 3 error C2873: cout: использование символа в "using"-объявлении не допускается c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 6
Ошибка 11 error C3861: print_bin: идентификатор не найден c:\users\вова\desktop\лаба1_2\лаба1 _2\лаба1_2.cpp 54
Вот что у меня выдает

Последний раз редактировалось Stilet; 15.10.2013 в 23:48.
V_I_P вне форума Ответить с цитированием
Старый 15.10.2013, 22:07   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <iostream>
using namespace std;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С/С++, ПОБИТОВЫЕ ОПЕРАЦИИ. gopnikdj Помощь студентам 5 25.12.2012 18:29
Побитовые операции Unique Паскаль, Turbo Pascal, PascalABC.NET 3 29.08.2010 18:50
Побитовые операции С++ Defa4ka Помощь студентам 4 22.06.2010 14:55
побитовые операции Александе еть я Общие вопросы C/C++ 2 18.04.2010 13:31
побитовые операции Dimarik Общие вопросы C/C++ 7 16.04.2010 19:27