Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2012, 14:14   #1
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию Представить число в четырехбайтовом формате с фиксированной запятой

Добрый день.....столкнулся с проблемой представления чисел в формате.
Как представить число -198 в четырехбайтовом формате с фиксированной запятой?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 22.04.2012, 15:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тоесть? Какой у него вид то должен быть на экране?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.04.2012, 15:19   #3
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Stilet, нет это даже не программа, просто даже в гугле не найти последовательности действий по переводу числа из 10 системы вот в такую....
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 22.04.2012, 15:20   #4
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

по переводу в двухбайтовый формат проблем никаких.....а вот в 4-х упорно не понимаю


может учебник какой где это есть кто нибудь знает?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 22.04.2012, 15:33   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а вот в 4-х упорно не понимаю
Мдя... Я тоже никогда не слышал ничего подобного...
Впрочем наверное тебе нужно просто изучить формат вещественных и кодировать в него: http://ru.wikipedia.org/wiki/%D0%92%...BD%D1%8B%D1%85 (отсюда пляши, там далее должен быть описан формат побайтно)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.04.2012, 16:26   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
-198
...перевести всего лишь в дополнительный код
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.04.2012, 16:45   #7
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

raxp, ты уверен?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 22.04.2012, 18:14   #8
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Да , это ж основы информатики. Да и 2-байтовый формат отличается от 4-байтового лишь тем, что в 4-байтном на 16 разрядов больше. Именно в дополнительный код нужно переводить.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.04.2012, 19:37   #9
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

McFrey, как говорится, любую программу надо сначала написать карандашом на бумаге.
Раз Вам нужен формат с фиксированной точкой, то первое, что нужно сделать - решить, где именно (между какими разрядами числа) эта фиксированная точка будет находиться.
Собственно, частный случай числа с фиксированной точкой - целое число. У него эта самая точка находится сразу после младшего разряда.
Операции умножения и деления придется делать свои, а сложение и вычитание ничем не отличается от аналогичного для целых чисел.
Число 198 в двоичном коде в целых числах (8 разрядов):
11000110
То же число в формате с фиксированной точкой:
(0)11000110.(0)
здесь (0) обозначено некоторое количество нулей, зависящее от формата - общее количество знакуов должно быть 32, т.к. число 4-байтовое, а, следовательно 32-разрядное.
Например, если мы выберем формат 22.10, то вид числа 198:
0000 0000 0000 0011 0001 10.00 0000 0000
для представления отрицательного числа переводим в дополнительный код, для чего инвертируем все разряды, после чего добавляем к последнему 1 (именно 1 последнего разряда, а не просто 1)
1111 1111 1111 1100 1110 01.11 1111 1111 - это инвертированное
0000 0000 0000 0000 0000 00.00 0000 0001 - это прибавляем
1111 1111 1111 1100 1110 10.00 0000 0000 - это число -198 в дополнительном коде.
s-andriano вне форума Ответить с цитированием
Старый 22.04.2012, 21:58   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...это не только основы информатики, а вообще основа работы с отрицательными числами в логике, на аппаратном уровне.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числа в формате с плавающей запятой (Pascal) Черепаwка Помощь студентам 0 11.05.2011 09:42
Числа в формате с плавающей запятой (Pascal) Yamkin Помощь студентам 0 12.12.2010 22:19
представить структуру чисел в графическом формате Demon20008 Помощь студентам 1 24.09.2008 11:05
Необходимо представить десятичное число в двоичном виде Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2008 00:54