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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Verzhina
1 / 1 / 0
Регистрация: 09.04.2012
Сообщений: 90
#1

эвм-умножение со сдвигом влево на c++ - C++

19.04.2012, 01:18. Просмотров 2803. Ответов 21
Метки нет (Все метки)

задали лабораторную,нужно написать программу на c++ которая производит умножение со сдвигом влево.позно вспомнила,не успеваю.подскажите как перевести из десяти4ной системы в двоичную чтоб потом удобно было использовать сдвиг и побитовое сравнение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 01:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос эвм-умножение со сдвигом влево на c++ (C++):

Структура "ЭВМ". Определить какая ЭВМ имеет минимальное отношение стоимость/быстродействие - C++
Даны 3 ЭВМ , известны объемы памяти, цена и быстродействие. Определить какая ЭВМ имеет минимальное отношение стоимости/быстродействию и...

Задано 4 матрицы. Провести сложение, умножение, умножение на число - C++
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей - C++
Задание: Класс «Квадратная матрица». Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей. Нужно...

Удаление столбцов со сдвигом влево и срок со сдвигом вверх - VBA
Добрый день! Имеется excel файл который необходимо привести к определённому формату, что необходимо сделать: 1. Удалить столбцы: A,...

Программа со сдвигом Влево и со сдвигом в право - Assembler
Задание: Написать программу на Assembler которая бы сдвигала 1 светодиод в лево и в право как показано на прикреплённом задании. Далее...

Структура государства - Удаление со сдвигом влево - C (СИ)
Здравствуйте. Вот выполнил структуру на тему государства. Организовал вывод, добавление со сдвигом в право, а вот удаление со сдвигом влево...

21
Verzhina
1 / 1 / 0
Регистрация: 09.04.2012
Сообщений: 90
19.04.2012, 21:13  [ТС] #16
RGA и RGB это регистры с цифрами которые надо умножить, а RGP ето чтото вроде результата (часное произведение).циклов столько,сколько разрядов множителя.
0
Avazart
Эксперт С++
7245 / 5417 / 295
Регистрация: 10.12.2010
Сообщений: 24,034
Записей в блоге: 17
19.04.2012, 23:13 #17
Так и не разобрался с примером, так и не понял например что делается с регистром B и почему он с каждым шагом меняется.
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
#include <iostream>
#include <bitset>
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a=13,b=11,p=0;
bitset<4> B(b);
 
cout<<"--RgP------RgB----"<<endl;
for(int i=0;i<4;i++)
 {
 cout<<bitset<8>(p)<<"   "<<B[i]<<" shift"<<endl;
 if(B[i])
    {
    p+=a<<i;
      cout<<bitset<8>(p)<<"   "<<B[i]<<" add"<<endl;
    }
 else cout<<bitset<8>(p)<<"   "<<B[i]<<" no add"<<endl;
 cout<<"-------------------"<<endl;
 }
system("pause");
return 0;
}
//---------------------------------------------------------------------------
1
kazak
19.04.2012, 23:39
  #18

Не по теме:

Я так понимаю это обычное умножение в столбик, только в двоичном виде.

0
Avazart
Эксперт С++
7245 / 5417 / 295
Регистрация: 10.12.2010
Сообщений: 24,034
Записей в блоге: 17
19.04.2012, 23:53 #19
Оно самое!
Там под примером написано: "Умножение методом сдвига влево", только пример непонятно как оформлен
0
Verzhina
1 / 1 / 0
Регистрация: 09.04.2012
Сообщений: 90
20.04.2012, 01:32  [ТС] #20
каждый раунд начинается со сдвига B и P влево на 1 разряд,проверяется подчеркнутый разряд в предыдущем раунде если там 1 то A прибавляется к P,если 0 то после сдвига ни4его не меняется.и так столько раз сколько разрядов в умножаемых цифрах,по этому мне надо чтоб переводя из десятичной в двоичную лишних нулей небыло.в итоге получаем правельный ответ 11*13=143.


надеюсь смогла внятно обьяснить,я привыкла ко всей этой терминалогии на армянском))
0
Avazart
Эксперт С++
7245 / 5417 / 295
Регистрация: 10.12.2010
Сообщений: 24,034
Записей в блоге: 17
20.04.2012, 01:55 #21
Дело в том что производить сдвиг в B не зачем достаточно пробежатся по его битам.
В моем примере я сдвигал A и результат сдвига прибовлял к P
Кстати неуверен что можно использовать bitset...а без него как-то все усложняется
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
21.04.2012, 02:37 #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
 
int main(int argc, char* argv[])
{
   int RGP = 0;
   short int RGB = 13, RGA = 11;
   size_t sz = sizeof(short int)*8 - 1;
 
   for (int i = sz; i >= 0; i--)
   {
      RGP <<= 1;
      if (RGB&(1<<i))
         RGP += RGA;
   }
   cout << RGA << " * " << RGB << " = " << RGP << endl;
   system("pause");
   return 0;
}
1
21.04.2012, 02:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 02:37
Привет! Вот еще темы с ответами:

Заполнение массива справа налево со сдвигом влево - Delphi
Доброго времени суток! Подскажите, как решить такую задачу: Дан массив temparray: array of TPoint . Необходимо заполнять массив...

Не могу разобраться с циклическим сдвигом влево RCL - Assembler
model SMALL stack 100h dataseg MB db ...

Вставка 0 или 1 в любой бит байта со сдвигом влево - Assembler
Ребят, помогите пожалуйста студенту? &quot;Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бит байта со...

Деление и умножение сдвигом - Assembler
Объясните пожалуйста как разделить 10 на 3 сдвигами


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

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