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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
#1

Задание(( даже незнаю с чего начать... - C++

02.11.2011, 16:20. Просмотров 1732. Ответов 40
Метки нет (Все метки)

Программы реализуются как ассемблерные вставки в языке высшего уровня (Паскаль, С++ и т.д.).

Заданы два числа <16. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов.

Две свои программы написал на C++ Builder 6
summa(Aij * X) + summa(Bi * Y) и (A * X + B) div (C * X2 + D * X + E)
тут надо было вычислить, вычисления асмом а запрос на ЯВУ...

А в этой задаче немогу понять, как наглядно показать, что оба множителя и их произведение записаны в ячейку памяти размером в два байта без пропуска битов. Каким образом в Builder C++ можно показать ячейку??? Помогите советом пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2011, 16:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задание(( даже незнаю с чего начать... (C++):

Задание: разработать "Интерпретатор языка". С чего начать? - C++
Здравствуйте, вручили темку на курсовик, ну точнее как вручили, не успел взять то, что хотел - пришлось брать то, что осталось. Плоховато...

Незнаю как решить задание - C++
Дано четырехзначное число.Найти: а.)сумму его цифр; б.)произвидение ео цифр. Начал учить С++ только два дня назад!Нужно...

Хочу начать учить C++ с чего начать? - C++
Посоветуйте действительно хорошие книги/видео уроки по этому языку. За спиной у меня нет других языков программирования. Еще хочу задать...

Написал задание с классами, по примеру, но в public выдает ошибки, незнаю как их переделать :) - C++
# include &quot;stdafx.h&quot; # include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class Magazine ...

С чего начать? - C++
Доброго времени суток! Хочу выучить язык С++, подскажите с чего лучше начать изучение? Заранее благодарен!

с чего начать - C++
я сейчас обучаюсь в одном заведении (чтото вроди кружка) C#-у. нам там пока дают базу но ее я вроди как и знаю. учитель видит что я ничего...

40
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 16:29 #2
magistr011, определяете количество бит, необходимых для представления числа 15. Это 4 бита. 0000 = 0, 1111 = 15. Считаете. Затем OR'ите их в переменную размером в два байта, сдвигая их на необходимое количество бит влево/вправо.
0
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
02.11.2011, 16:29 #3
Вставка ассемблерного кода
_asm
{
функции ассеблера
}
0
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 16:58  [ТС] #4
Ребята я асм вставлю конеш, только как в Builder C++ это показать??? В Label выводить результат??? И как показать, что это именно 2 байта, а не 3 или 4???

Может просто реализовать запрос чисел на С++ ,а само вычисление на асме и в вычислении данные без какой либо визуализации поместить по адресу и в 2 байта...
2 байта это ведь FF FFh т.е. 65536d
Но есть прикол, которого я пока непонял... 1байт FF это одна цифра, а надо разместить три цифры в 2 байта, а не в три... как например 16*16=256 всетри числа записать в 2 байта без пропуска битов))
Ведь тут по сути три бита нужно для записи... (16d)10h * (16d)10h = (256d)100h это вообще 4 бита? (в скобках я написал те же числа, только в шесн-й системе) т.е. 10 10 100 - это никак не 2 бита(((

Добавлено через 8 минут
Вроде что-то такое...
0000 0000 0000 0000 это 2 байта, нужно сюда поместить, без пропуска
битов это: 16 (1 0000b) 16 (1 0000b) 256 (1 0000 0000b) но мне пока неясно как(((
буква "b" в конце - это двоичная система (не знак, это для компилятора пометка)

Добавлено через 2 минуты
Цитата Сообщение от talis Посмотреть сообщение
Затем OR'ите их в переменную размером в два байта, сдвигая их на необходимое количество бит влево/вправо.
Друг, пример покажи пожалуйста...
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 17:30 #5
Пример:

- Байт 1 - Байт 2 -
0000'0000 0000'0000 <--- исходная переменная
0000'0000 0000'1000 <--- записано первое число, 8 (1000)
0000'0000 1100'1000 <--- записано второе число, 12 (1100)
0000'0011 1100'1000 <--- записано третье число, 3 (0011)


Добавлено через 4 минуты
Цитата Сообщение от magistr011 Посмотреть сообщение
Заданы два числа <16.
Значит 16 не включается в этот диапазон: 0 .. 15.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 17:35 #6
Цитата Сообщение от talis Посмотреть сообщение
этот диапазон: 0 .. 15.
Иначе их произведение превысит байт и задание будет не выполнимо.)
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 17:39 #7
Хотя... Отрицательные числа дополнительным кодом никто не отменял, так что может быть -8 .. 7

Добавлено через 25 секунд
Хотя в вопросе записи это не имеет значения
0
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 17:47  [ТС] #8
Цитата Сообщение от talis Посмотреть сообщение
Заданы два числа <16.
простите((( я неправильно написал задание ((( <=16
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 17:49 #9
Цитата Сообщение от magistr011 Посмотреть сообщение
<=16
Произведение может не влезть в байт. 16 > полубайта. Задание не решаемо.
0
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 17:53  [ТС] #10
Цитата Сообщение от talis Посмотреть сообщение
- Байт 1 - Байт 2 -
0000'0000 0000'0000 <--- исходная переменная
0000'0000 0000'1000 <--- записано первое число, 8 (1000)
0000'0000 1100'1000 <--- записано второе число, 12 (1100)
0000'0011 1100'1000 <--- записано третье число, 3 (0011)
Это всё супер, но как например если...

0000'0000 0000'0000 <--- исходная переменная
0000'0000 0001'0000 <--- записано первое число, 16 (1 0000)
0000'0001 0000'1000 <--- записано второе число, 16 (1 0000)
0000'0001 0000'1000 <--- записано третье число, 256 (1 000 000) куда это писать???

ведь нудно множители и их произведение в два байта уложить...
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 17:54 #11
16 = 1 0000 = 5 бит

5 * 3 = 15, в двух байтах 16 бит. Или я туплю?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 18:02 #12
Цитата Сообщение от talis Посмотреть сообщение
5 * 3 = 15, в двух байтах 16 бит. Или я туплю?
Но произведение 16*16 = 9 бит.
9+5+5 = 19, а не 16
0
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:02  [ТС] #13
Цитата Сообщение от talis Посмотреть сообщение
в двух байтах 16 бит
канеш... 1 байт = 8 бит
2 байта = 16 бит
0
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:03 #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
Но произведение 16*16 = 9 бит.
9+5+5 = 19, а не 16
М-да, про произведение-то я забыл
0
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:05  [ТС] #15
Цитата Сообщение от Deviaphan Посмотреть сообщение
16*16 = 9 бит
правильно
1 0000 0000 = 256

Добавлено через 1 минуту
Цитата Сообщение от talis Посмотреть сообщение
Затем OR'ите их в переменную размером в два байта, сдвигая их на необходимое количество бит влево/вправо.
примерчик бы (( Думаю здесь ответ...
0
02.11.2011, 18:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2011, 18:05
Привет! Вот еще темы с ответами:

С чего начать? - C++
Хочу изучить C++ Пожалуйста посоветуйте что прочесть и какую прогу и где скачать(купить). Спасибо!

С чего начать - C++
ВСЕМ ПРИВЕТ.Собсвенно может не туда залез, но прошу совета.Хочу начать изучать програмирование, про &quot;это все&quot; не знаю ничего абсолютно,...

С чего начать? - C++
В универе задали курсовую работу, на С++. Заданее следующее:Тренажер теннесиста. Тренажер представляет собой комнату с тремя стенами (в...

с чего начать? - C++
доброго всем времени суток. так получилось, что у меня куча свободного времени, и нужно чем-то занять мозг. выбор пал на...


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

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

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