Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите подобрать диапозоны для чисел, Rez=y- z&x, чтобы без переполнения 
:(
    Опции темы
powerfox
Дата 28.10.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Привет. Нужна помощь в проверке значений чисел. 
Есть 16 бит для каждого числа, причём z,x - логические величины (старший бит под знак не используется), а Rez,y, z&x - fhbavtnbxtcrbt (сто знаком).

Rez=y - (z&x) 
z&x = c


Вариант 1.
0<=z,x<=2^16 -1  ---> -2^15 <= x&z <= 2^15 -1
По-моему, y здесь может быть только 0, иначе возможен вариант переполнения: y=-10, а c = 2^15 -1. y - c < -2^15 - переполнение. Или y = 1, а с = -2^15 -1 - тоже переполнения.

Вариант 2.
0<=x,z <= 2^15 -1 --> 0<=z&x<=2^15 -1
0<=y<=2^15 -1

По-моему, верно.

Очень важно, чтобы в этих вариантах не было ошибок.

Это сообщение отредактировал(а) powerfox - 28.10.2006, 16:33


--------------------
user posted image
PM WWW   Вверх
anwe
Дата 28.10.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Цитата
Вариант 2.
0<=x,z <= 2^15 -1 --> 0<=z&x<=2^15 -1
0<=y<=2^15 -1

Да,верно.
Есть еще вариант проверки вводимых данных динамически. После ввода, прежде чем перейти к вычислениям, проводишь проверку для конкретно введеных чисел. Удобнее "постаривать" у, потому что, если подстраивать x и z под у, то сначала их надо проверить между собой, то есть на одну проверку больше. Но я не знаю твоего задания, может сначало надо вводить у и под него подстраивать x и z.
PM MAIL   Вверх
powerfox
Дата 28.10.2006, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



anwe, 
Цитата(anwe @  28.10.2006,  20:12 Найти цитируемый пост)
Но я не знаю твоего задания, может сначало надо вводить у и под него подстраивать x и z.

Задание - вычислить Rez, считав x,y,z с памяти, никакой проверки не сделать (нет команд, это "урезанный" асм). Нужно написать, с какими x,y,z прога корректно работает.


--------------------
user posted image
PM WWW   Вверх
anwe
Дата 28.10.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Ну я и сказал, что не знаю твоего задания. Тогда второй варинт верный и все тут.
PM MAIL   Вверх
powerfox
Дата 28.10.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



А первый? Он не имеет смысла, но числа верные же?


--------------------
user posted image
PM WWW   Вверх
anwe
Дата 28.10.2006, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Цитата
А первый? Он не имеет смысла, но числа верные же?

Не понял вопроса. Числа верные в том смысле, что каждое из них не выходит за пределы слова, но условия не  верны, ведь нет гарантии, что результат будет размером в слово.
PM MAIL   Вверх
powerfox
Дата 28.10.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(anwe @  28.10.2006,  23:07 Найти цитируемый пост)
Не понял вопроса. Числа верные в том смысле, что каждое из них не выходит за пределы слова, но условия не  верны, ведь нет гарантии, что результат будет размером в слово.

В том смысле, что при 
0<=z,x<=2^16 -1
y = 0   

Будет: -2^15 <= x&z <= 2^15 -1
И результат влезет в  [-2^15; 2^15 -1]


--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.