0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 3
|
|
1 | |
Функция без операций умножения и деления27.09.2009, 17:43. Показов 4754. Ответов 31
Метки нет (Все метки)
Приветствую всех... Парни, помогите с лабой...
задание: нужно реализовать функцию без операций умножения и деления..., т.е использовать сдвиги и тд! Вот функция: y=(3*(a-b)^2)/4 . Заранее спасибо!
0
|
27.09.2009, 17:43 | |
Ответы с готовыми решениями:
31
Приоритет операций умножения и деления.. Реализация операций умножения и деления используя команды сдвига Как реализовать преобразование упакованных чисел в неупакованные для операций деления и умножения? Перегрузка операций умножения и деления |
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
27.09.2009, 17:54 | 2 |
И в чем проблема? Вспоминаем математику и ВЫЧИТАЕМ, СКЛАДЫВАЕМ несколько раз и СДВИГАЕМ.
0
|
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 3
|
|
27.09.2009, 17:58 [ТС] | 3 |
Я все помню... но проблема в том, что я ассемблер не знаю...(синтаксис и тд) Я на с++ рабил!
0
|
28 / 25 / 1
Регистрация: 28.07.2009
Сообщений: 109
|
|
27.09.2009, 18:01 | 4 |
Напиши на C++ без умножения и деления и загляни в листинг
0
|
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 3
|
|
27.09.2009, 18:10 [ТС] | 5 |
Я уже писал на с++, опять же проблема заключается в делении... Я через циклы делал и все! А тут же двоичное представление, сдвиги! Парни, если это легко(как вы говорите), может поможите! Я в долгу не останусь!
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
27.09.2009, 18:27 | 6 |
Стучи в аську. номер есть в профиле.
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
27.09.2009, 19:40 | 7 | |||||
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
27.09.2009, 19:53 | 8 |
galileopro, что-то не то это считает. С твоими числами, получается какое-то грандиозное число в ответе
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
27.09.2009, 20:16 | 9 | |||||
Там с отрицательным числом проблемы. Если a<b Добавлено через 1 минуту Попробй а 10
0
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
27.09.2009, 20:59 | 10 |
Нет. Должно быть 36, а выдает 5
Добавлено через 5 минут Пообщались с TC по аське... Короче все решили
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.09.2009, 21:09 | 11 |
2galileopro - забыл возвести в квадрат !
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
27.09.2009, 22:07 | 12 |
Да я заметил. Я понял, что Вы все решили, просто хочу доделать Вы не против?
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.09.2009, 22:09 | 13 |
Конечно доделай !
Заодной сравним - может топикастер накосячил
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
27.09.2009, 22:12 | 14 | |||||
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.09.2009, 22:20 | 15 |
Все равно не вижу возведения в 2-ую степень ?
И умножение на 3 можно сделать как a+(a<<1) а не как ты (a<<2)-a Добавлено через 1 минуту Кстати - ХА! А как возвести во вторую степень без умножения. Это придется извращаться ...
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
27.09.2009, 22:31 | 16 | |||||
1
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
27.09.2009, 22:34 | 17 |
Возводится без проблем, главное помнить, что степень, это умножение, а умножение это сложение
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.09.2009, 22:36 | 18 |
Вроде правильно - но запустить и проверить не помешает
А еще можно ускорить умножение - но это уже оптимизация Добавлено через 1 минуту Goodwin98: Только умножать на 100000 с помощью сложения будет несколько долго
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
27.09.2009, 22:45 | 19 |
Кстати да. Можно. А пример "на пальцах" привести можете?
Добавлено через 36 секунд ну скажем 8^2=...
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.09.2009, 22:51 | 20 |
Например умножить A*57
57=32+16+8+1 Если есть число A, то как получить A, 2A, 4A, 8A и так далее понятно - с помощью сдвига ! Значит A*57=(A+8A+16A+32A). Ну а если научился умножать A на любое B - то уже умножить A на A не составит труда
0
|
27.09.2009, 22:51 | |
27.09.2009, 22:51 | |
Помогаю со студенческими работами здесь
20
Реализация операций умножения и деления используя команды сдвига Не используя операций умножения и деления, найти длину незанятой части отрезка A Найти значение выражения. Для операций умножения и деления использовать сдвиг влево и вправо Цикл с условием: не используя операций умножения и деления, найти длину незанятой части отрезка А Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |