Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
46 / 38 / 15
Регистрация: 28.09.2012
Сообщений: 818
1

Перевести отрицательное число из десятичного представления в машинное представление

18.10.2014, 20:30. Показов 3575. Ответов 9
Метки нет (Все метки)

Как перевести отрицательное число с десятичной представления в машинное представление ( дробь правильная)
64 розрядное, целое и дробь.
может кто просветить не шарю совсем( не понимаю саму суть что делать надо, если бы понял мог бы и накодить исходя из понятого а так....

Добавлено через 57 минут
up
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 20:30
Ответы с готовыми решениями:

Получить машинное представление 64-битного вещественного десятичного числа (15,92), ответ в шестнадцатеричном коде
Дано 2 задания: 1) Получить машинное представление 64-битного вещественного десятичного числа...

Перевести из десятичного представление числа в шестнадцатеричное
Найти шестнадцатеричное представление десятичного числа 1000.

Из цифр десятичного представления 3 чисел составить максимально большое число
Ввести с клавы 3 числа из чисел составить 1 число,максимально большое пример:(3521 111 81 результат...

Перевести десятичное отрицательное число в шестнадцатиричное
Нужно сделать перевод из десятичной в шестнадцатиричную и семеричную, я все сделал, но никак не...

9
6989 / 6028 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
18.10.2014, 21:10 2
Ты толком сформулируй. Побитовое нужно или что? Зачем тебе машинное представление?
0
46 / 38 / 15
Регистрация: 28.09.2012
Сообщений: 818
18.10.2014, 22:55  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Ты толком сформулируй. Побитовое нужно или что? Зачем тебе машинное представление?
ну вводишь отрицательное число в 10 системе счисления
выводит в двоичной форме число с размером

как в калькуляторе онлайн пощитал но выводить не надо как щитает,просто ввел число, вывело решение
вот на всякий ссылька на калькулятор http://math.semestr.ru/inf/ieee754.php
Формат числа с плавающей запятой

Представление двоичного числа с плавающей точкой в экспоненциальном нормализованном виде.
2545 = 1001111100012
Сдвинем число на 11 разрядов вправо. В результате мы получили основные составляющие экспоненциального нормализованного двоичного числа:
Мантисса M=-1.001111100010
Экспонента exp2=11
Преобразование двоичного нормализованного числа в 64 битный формат IEEE 754.
Первый бит отводится для обозначения знака числа. Поскольку число отрицательное, то первый бит равен 1
Следующие 11 бит (с 2-го по 12-й) отведены под экспоненту.
Для определения знака экспоненты, чтобы не вводить ещё один бит знака, добавляют смещение к экспоненте +1023. Таким образом, наша экспонента: 11 + 1023 = 1034
Переведем экспоненту в двоичное представление.
1034 = 100000010102
Оставшиеся 52 бита отводят для мантиссы. У нормализованной двоичной мантиссы первый бит всегда равен 1, так как число лежит в диапазоне 1 ≤ M < 2. Для экономии, единицу не записывают, а записывают только остаток от мантиссы: 0011111000100000000000000000000000000000000000000000
В результате число -2545 представленное в IEEE 754 c двойной (double) точностью равно 110000001010001111100010000000000000000000000000000000000000 0000.
Переведем в шестнадцатеричное представление.
Разделим исходный код на группы по 4 разряда.
110000001010001111100010000000000000000000000000000000000000 00002 = 1100 0000 1010 0011 1110 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2
Получаем число:
1100 0000 1010 0011 1110 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2 = C0A3E2000000000016
0
6989 / 6028 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
18.10.2014, 23:06 4
А просто double или float в шестнадцатеричном виде взять нельзя? Надо именно вручную разбирать и все эти выкладки показывать?
0
46 / 38 / 15
Регистрация: 28.09.2012
Сообщений: 818
18.10.2014, 23:42  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
А просто double или float в шестнадцатеричном виде взять нельзя? Надо именно вручную разбирать и все эти выкладки показывать?
ну у меня задание "отрицательное число с десятичной представления в машинное представление ( дробь правильная)
64 розрядное, целое и дробь."
и в теории написанно вроде приблизительно как на калькуляторе щитают( в теории вобще нечего непонятно кто блин ее писал)
но если выходит приблезительно то же я бы и от этого примера не отказался бы.

Но все же надо вот таким способом делать.и потом просто вывести ответ(не росписивая что делаем)

*результат должен быть в 2оичном виде в 64 розряда
0
6989 / 6028 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
18.10.2014, 23:57 6
Сохраняешь своё число в переменную double, затем интерпретируешь double как unsigned long long и выводишь в шестнадцатеричном представлении.
0
46 / 38 / 15
Регистрация: 28.09.2012
Сообщений: 818
19.10.2014, 19:12  [ТС] 7
Цитата Сообщение от nmcf Посмотреть сообщение
Сохраняешь своё число в переменную double, затем интерпретируешь double как unsigned long long и выводишь в шестнадцатеричном представлении.
мне в 2оичном надо

Добавлено через 5 минут
поможет кто хотя бы алгоритм гайд какой дать по
представления чисел с плавающей запятой. - наверное так надо было назвать тему в 64битном формате
понял в калькуляторе только до

Добавлено через 12 минут
до
Представление двоичного числа с плавающей точкой в экспоненциальном нормализованном виде.
2545 = 1001111100012
Сдвинем число на 11 разрядов вправо. В результате мы получили основные составляющие экспоненциального нормализованного двоичного числа:
Мантисса M=-1.001111100010
Экспонента exp2=11
Преобразование двоичного нормализованного числа в 64 битный формат IEEE 754.
Первый бит отводится для обозначения знака числа. Поскольку число отрицательное, то первый бит равен 1
Следующие 11 бит (с 2-го по 12-й) отведены под экспоненту.
Для определения знака экспоненты, чтобы не вводить ещё один бит знака, добавляют смещение к экспоненте +1023. Таким образом, наша экспонента: 11 + 1023 = 1034
Переведем экспоненту в двоичное представление.
1034 = 100000010102


вот ето непонял
Оставшиеся 52 бита отводят для мантиссы. У нормализованной двоичной мантиссы первый бит всегда равен 1, так как число лежит в диапазоне 1 ≤ M < 2. Для экономии, единицу не записывают, а записывают только остаток от мантиссы: 0011111000100000000000000000000000000000000000000000
В результате число -2545 представленное в IEEE 754 c двойной (double) точностью равно 110000001010001111100010000000000000000000000000000000000000 0000.

каким боком 0011111000100000000000000000000000000000000000000000 стает вот такой
110000001010001111100010000000000000000000000000000000000000 0000


Добавлено через 13 часов 1 минуту
ех((

Добавлено через 5 часов 49 минут
UP)
0
Модератор
Эксперт по электронике
8431 / 6268 / 844
Регистрация: 14.02.2011
Сообщений: 21,745
19.10.2014, 19:15 8
Lynatik001, посмотри в блогах у Evg у него есть на эту тему
0
6989 / 6028 / 2737
Регистрация: 14.04.2014
Сообщений: 25,792
19.10.2014, 19:51 9
Лучший ответ Сообщение было отмечено Lynatik001 как решение

Решение

Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
 
#include <iostream>
#include <iomanip>
#include <bitset>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    double d = -2545;
    unsigned long long *i = reinterpret_cast<unsigned long long *>(&d);
    std::cout << "HEX: "<< std::hex << *i << std::endl << "BIN: " << std::bitset<64>(*i) << std::endl;
 
    system("pause");
    return 0;
}
1
Миниатюры
Перевести отрицательное число из десятичного представления в машинное представление  
46 / 38 / 15
Регистрация: 28.09.2012
Сообщений: 818
19.10.2014, 20:51  [ТС] 10
Цитата Сообщение от nmcf Посмотреть сообщение
Так?
ну да( но код в 3 строчки точно не примут)) ето же лаба
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2014, 20:51

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Перевести отрицательное десятичное число в двоичную систему!
Перевести отрицательное десятичное число в двоичную систему! Дело в том, что в обратный код, я...

Машинное представление
В универе задали задание, написать программу, которая покажет машинное представление чисел введёных...

Перевести заданное десятичное число в шестнадцатеричную форму. Ввод десятичного числа с клавиатуры
Перевести заданное десятичное число в шестнадцатеричную форму. Ввод десятичного числа с клавиатуры...

Найти отрицательное число и после отрицательное число заменить все элемент на нули
Найти отрицательное число и после отрицательное число заменить все элемент на нули


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

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

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