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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2018, 01:05   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Как правильно представить в двоичном виде дробное отрицательное число -194,2?

Добрый вечер! Как правильно представить в двоичном виде дробное отрицательное число -194,2?
По заданию нужно представить внутренний код числа в четырехбайтном формате с плавающей точкой.
Совершенно не уверена в правильности решения, поэтому обращаюсь с таким вопросом:
1. Перевела 194 в двоичную = 11000010
2. Нужно ли для этого двоичного числа находить дополнительный код?
3. Дробную часть переводила следующим образом:
0.2*2=0.4
0.4*2=0.8
0.8*2=1.6
0.6*2=1.2
0.2*2=0.4...
В итоге, без перевода в дополнительный код в 32-байтном формате вышло что-то типа этого:
1(знак) 11000010,0011001100110011001100
Вероника99 вне форума Ответить с цитированием
Старый 27.09.2018, 02:06   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Вероника99 Посмотреть сообщение
1. Перевела 194 в двоичную = 11000010
Правильно
Цитата:
Сообщение от Вероника99 Посмотреть сообщение
2. Нужно ли для этого двоичного числа находить дополнительный код?
Нет. Для плавающих чисел взводится знаковый бит без перевода в дополнительный формат
Цитата:
Сообщение от Вероника99 Посмотреть сообщение
В итоге, без перевода в дополнительный код в 32-байтном формате вышло что-то типа этого:
1(знак) 11000010,0011001100110011001100
Правильно.
Окончательный результат преобразования:
1 1 0000110 100 0010 0011 0011 0011 0011 0011 0011
где
1 - знак числа
1 0000110 - порядок со смещением
100 0010 0011 0011 0011 0011 0011 0011 - мантисса без старшей единицы
Black Fregat вне форума Ответить с цитированием
Старый 27.09.2018, 17:29   #3
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Спасибо,поняла!
Вероника99 вне форума Ответить с цитированием
Старый 27.09.2018, 21:15   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Этот скрипт, на Python, показывает как вещественное число хранится в 32-х битовом представлении.
Код:
from ctypes import *

class MyRecF(Union):
    _fields_ = [("x", c_ubyte*4),("y", c_float)]

pF=MyRecF()  # тип данных переменной pF
print('Вывод двоичного представления вещественного'
      'числа одинарной точности.\n'
      'Формат: f.d,\n'
      'где : f - целая часть числа;\n'
      '    : . - точка (Разделитель).\n'
      '    : d - дробная часть числа.\n'
      'Выход - ввод любого не цифрового символа.')
print('=== Одинарный формат точности (32 бита) ===\n'
      ' /-------\<-Порядок + 127 (0111 1111)\n'
      'Zppppppppm m m m m m m m m m m m\n'
      ':        \-------> Мантисса числа\n'
      ': <- Знак числа\n')
while True:
    try:
        pF.y = float(input('Введите число:'))
    except ValueError:
        print('Работа завершена!')
        break
    msg=""
    for i in range(3,-1,-1):
          msg+="{0:08b}".format(pF.x[i])
    print(msg)
    print('zppppppppm m m m m m m m m m m m\n')
Аналогичный код можно написать и на Паскале.
Проверяйте.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать число в двоичном виде в переменную Krasiosoft Общие вопросы C/C++ 16 16.03.2018 14:08
выведите число в двоичном виде (2СС).Си nataqwest Помощь студентам 1 19.12.2014 23:20
создание програмы на делфи циклы:ввести натуральное число и определять, можно ли число представить в виде суммы двух простых чисел Костяхалк Помощь студентам 24 28.01.2014 08:48
Число в двоичном виде в C apple_pie Общие вопросы C/C++ 0 07.12.2009 11:54
Необходимо представить десятичное число в двоичном виде Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2008 00:54