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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
DDR0703
0 / 0 / 0
Регистрация: 02.01.2010
Сообщений: 5
#1

Обработка битовых последовательности (Срочно) - C++

03.01.2010, 05:17. Просмотров 1175. Ответов 7
Метки нет (Все метки)

Решите пожалуйста задачу на с++

НЕ че не могу сделать, голову сломал, напишите плиз а то я у же в очередье на отчисления в универе

Тема: Обработка битовых последовательности

Требования: 1) Предусмотреть диалоговый ввод даных.
2) Предусмотреть проверку правильности водимых данных для чего построить процедуру вывода исходного числа в двоичном представлений
3) предусматривать форматированы вывод данных в удобном виде

Реализовать алгоритм восстановления значения целого отрицательного числа по его дополнительному двоичному коду. Значения восстанавливаемого числа водится с клавиатуры, результат на экран

Добавлено через 17 часов 23 минуты
Плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
03.01.2010, 10:25     Обработка битовых последовательности (Срочно) #2
то есть пользователь вводит чило в доп. коде и надо перевести его в прямой код, так что ли?
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.01.2010, 12:22     Обработка битовых последовательности (Срочно) #3
>Обработка битовых последовательности (Срочно)
Очень Срочно! Читай это: http://ru.wikipedia.org/wiki/Дополни...авление_числа)
DDR0703
0 / 0 / 0
Регистрация: 02.01.2010
Сообщений: 5
03.01.2010, 14:12  [ТС]     Обработка битовых последовательности (Срочно) #4
если бы я понимал бы что там написано я элементарных операторов не знаю, и толком алгоритм на бумажке написать не могу а тут целые циклы О_о
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.01.2010, 14:14     Обработка битовых последовательности (Срочно) #5
Цитата Сообщение от DDR0703 Посмотреть сообщение
алгоритм на бумажке написать не могу а тут целые циклы
значит я вижу такие выходы для тебя:
1) поменять специальность
2) пойти в армию
3) надеяться на бесплатную помощь
4) обратиться в платный раздел
DDR0703
0 / 0 / 0
Регистрация: 02.01.2010
Сообщений: 5
03.01.2010, 14:21  [ТС]     Обработка битовых последовательности (Срочно) #6
3)
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
03.01.2010, 15:36     Обработка битовых последовательности (Срочно) #7
Если ты хочешь благополучно закончить универ, то лучше начни учиться:
Вот код для преобразования двоичного числа в обратное(взято с Wiki):
C++
1
2
if (a < 0)
  a = (~a)|128;
Дальше думай сам...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2010, 15:44     Обработка битовых последовательности (Срочно)
Еще ссылки по теме:

Обработка числовой последовательности C++
C++ Обработка последовательности символов
Обработка последовательности символов C++
Обработка последовательности символов C++
Обработка последовательности C++

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

Или воспользуйтесь поиском по форуму:
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
03.01.2010, 15:44     Обработка битовых последовательности (Срочно) #8
знаковый разряд не будем учитывать т.к. в задаче говорится что чило отрицательное заведомо.
вот: пример -7 это 111 в прямом коде без учета знакового разряда, -7 в дополнительном коде это 1001 тоже без учета знакового разряда. тест: вводим 1001 получаем 111, все рабоет.
алгорим такой:
Xдоп - число в дополнительном коде.
отнять единицу от Xдоп
нужно ивертировать каждый разряд числа (Xдоп - 1)
получим чило в прямом коде.
в данное программе счиатется что сило имеет столько разрядов скольо было введено
например 10 только два, и прямой код для этого числа будет 10, а если нужено больше разрядов то
00000010 - байт. для него прямой код 11111110.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
void subone(string &x,int i) //âû÷åñòü åäèГ*èöó. x - ÷èñëî, ïîðÿäîê(i)=ïîðÿäîê(ГІГҐГЄГ№ГЁГ© Г°Г*çðÿä)
{
     
     if (x[i]=='1')//ГІГҐГЄГіГ№ГЁГ© Г°Г*çðÿä Г°Г*ГўГҐГ* 1
        x[i]='0'; //âûäåëèòü ГЁ îáГ*óëèòü ГІГҐГЄГіГ№ГЁГ© Г°Г*çðÿä
     else
     {        //ГІГҐГЄГіГ№ГЁГ© Г°Г*çðÿä Г°Г*ГўГҐГ* 0...
         x[i]='1'; //...Г§Г*ìåГ*ГЁГІГј Г*Г* 1 ГЁ...
         if(i>0)subone(x,i-1);//...âû÷åñòü ГЁГ§ áîëèå Г±ГІГ*ðøåãî Г°Г*çðÿäГ*.
     }
}
 
void negative(string &x,int i) //ïîðГ*çðÿäГ*Г*Гї ГЁГ*âåðñèÿ Г·ГЁГ±Г«Г*.
{
     if (x[i]=='1')  //åñëè Г°Г*çðÿä 1 ГІГ®...
     {
        x[i]='0';   //...Г*Г*äî ГҐГЈГ® îáГ*óëèòü ГЁ...
     }
     else
     {            //åñëè Г°Г*çðÿä 0 ГІГ®...
         x[i]='1';//Г*Г*äî ГіГ±ГІГ*Г*îâèòü ГҐГЈГ® Гў 1 ГЁ...
     }
     if (i>0)negative(x,i-1); //...ïðåéòè ГЄ áîëèå Г±ГІГ*ðøåìó Г°Г*çðÿäó
}
 
int length(string str)
{
    int i=0;
    while (str[i]!='\0')i++;
    return i;
}
 
int main()
{
    cout << "enter edd codded number\n";
    string s;
    cin >> s;
    subone(s,length(s)-1);//вычесть единицу
    cout << "sub 1 = " << s << endl;
    negative(s,length(s)-1);//поразрядно инверсировать
    cout << "Prime coded num " << s << endl;
    getch();
}
Yandex
Объявления
03.01.2010, 15:44     Обработка битовых последовательности (Срочно)
Ответ Создать тему
Опции темы

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