Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
1

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

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

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

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

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

А в этой задаче немогу понять, как наглядно показать, что оба множителя и их произведение записаны в ячейку памяти размером в два байта без пропуска битов. Каким образом в Builder C++ можно показать ячейку??? Помогите советом пожалуйста
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2011, 16:20
Ответы с готовыми решениями:

Незнаю с чего начать
Добрый день ребята, не знаю куда именно писать по моему вопросу, надеюсь не удалят и помогут. Во...

Найти f(D) незнаю с чего начать
Помогите, пожалуйста незнаю с чего начать?

Незнаю с чего начать. Авторизация+Регистрация.
Совсем недавно начал осваивать ООП. Вот решил для тренировки сделать регистрацию и авторизацию с...

Телефонная книга с++...Я даже не знаю с чего начать.
Мне нужно сделать телефооную книгу. Программа должна запоминать Имя и Фамилию, если такои контакт...

40
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 16:29 2
magistr011, определяете количество бит, необходимых для представления числа 15. Это 4 бита. 0000 = 0, 1111 = 15. Считаете. Затем OR'ите их в переменную размером в два байта, сдвигая их на необходимое количество бит влево/вправо.
0
23 / 23 / 4
Регистрация: 05.11.2010
Сообщений: 134
02.11.2011, 16:29 3
Вставка ассемблерного кода
_asm
{
функции ассеблера
}
0
6 / 6 / 2
Регистрация: 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
794 / 546 / 61
Регистрация: 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
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 17:35 6
Цитата Сообщение от talis Посмотреть сообщение
этот диапазон: 0 .. 15.
Иначе их произведение превысит байт и задание будет не выполнимо.)
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 17:39 7
Хотя... Отрицательные числа дополнительным кодом никто не отменял, так что может быть -8 .. 7

Добавлено через 25 секунд
Хотя в вопросе записи это не имеет значения
0
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 17:47  [ТС] 8
Цитата Сообщение от talis Посмотреть сообщение
Заданы два числа <16.
простите((( я неправильно написал задание ((( <=16
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 17:49 9
Цитата Сообщение от magistr011 Посмотреть сообщение
<=16
Произведение может не влезть в байт. 16 > полубайта. Задание не решаемо.
0
6 / 6 / 2
Регистрация: 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
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 17:54 11
16 = 1 0000 = 5 бит

5 * 3 = 15, в двух байтах 16 бит. Или я туплю?
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 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
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:02  [ТС] 13
Цитата Сообщение от talis Посмотреть сообщение
в двух байтах 16 бит
канеш... 1 байт = 8 бит
2 байта = 16 бит
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:03 14
Цитата Сообщение от Deviaphan Посмотреть сообщение
Но произведение 16*16 = 9 бит.
9+5+5 = 19, а не 16
М-да, про произведение-то я забыл
0
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:05  [ТС] 15
Цитата Сообщение от Deviaphan Посмотреть сообщение
16*16 = 9 бит
правильно
1 0000 0000 = 256

Добавлено через 1 минуту
Цитата Сообщение от talis Посмотреть сообщение
Затем OR'ите их в переменную размером в два байта, сдвигая их на необходимое количество бит влево/вправо.
примерчик бы (( Думаю здесь ответ...
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 18:05 16
Цитата Сообщение от magistr011 Посмотреть сообщение
1 000 000 = 256
Это в какой системе счисления? .)
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:09 17
Цитата Сообщение от magistr011 Посмотреть сообщение
примерчик бы (( Думаю здесь ответ...
Я же уже давал примерчик. Дальше головой, самостоятельно. Читайте про битовые сдвиги, про поразрядные операции... Ну или идите по дороге жёлтых кирпичей к доброму Гудвину. Как Страшила
0
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:12  [ТС] 18
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сообщение от magistr011
1 000 000b = 256d
Это в какой системе счисления? .)
1 000 000b = 256d
0
Делаю внезапно и красиво
Эксперт С++
1311 / 1226 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 18:14 19
Цитата Сообщение от magistr011 Посмотреть сообщение
1 000 000b = 256d
Это ты только так думаешь.) Считай нолики внимательнее.
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:16 20
https://www.cyberforum.ru/cgi-bin/latex.cgi?{1000000}_{2} = {64}_{10}; https://www.cyberforum.ru/cgi-bin/latex.cgi?{100000000}_{2} = {256}_{10};
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2011, 18:16

Не знаю, даже с чего начать. Кто поможет?
Нужно написать программу, для расчета ПДВ, помогите вставить формулы в программу

Работа с файлами,чтение/запись, не знаю даже с чего начать
У администратора железнодорожных касс хранится информация о свободных местах в поездах дальнего...

Найти параметры катушки R, L. Подскажите, как решать, не знаю с чего даже начать

С чего и как начать? Задание с матрицами
Дали задание на курсовую, которое мы не разу не делали. Вообще нет представления как что. Само...


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

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

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