Аватар для DJZT
24 / 3 / 1
Регистрация: 21.12.2011
Сообщений: 151

Машинное представление

09.02.2012, 04:30. Показов 2720. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В универе задали задание, написать программу, которая покажет машинное представление чисел введёных с клавиатуры. Integet, long double, enum. Я не могу вообще понять алгоритм действий. На что опираться. Какие есть функции или алгоритмы перевода. Что-то слышал раньше про шаблоны С++, но краем, что можно как то ими. Дайте талчёк!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2012, 04:30
Ответы с готовыми решениями:

Машинное представление типов float и struct
Србственно, задача с вещестенными более-менее понятна, так как вручную все это делается более-менее легко. А вот как записать все это в...

Внутреннее (машинное) представление данных двух типов
Разработать программу, которая выводит на экран внутреннее (машинное) представление данных двух типов:short int и long double. Обеспечить...

Конвертировать машинное представление float в строку из 4 символов
Допустим, есть переменная X типа float, имеющая значение... да хотя бы -3.14. Машинным представлением этого числа являются четыре байта....

3
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,938
09.02.2012, 09:47
машинное представление - это двоичный код, 0 и 1, я бы приводил эти типы к какому-нибудь массиву unsigned char и выводил этот массив в двоичном виде при помощи сдвигов.
1
Диссидент
Эксперт C
 Аватар для Байт
27713 / 17331 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
09.02.2012, 09:55
C
1
2
3
4
5
6
long L = 12345;
unsigned char *s;
for(i=0; i<sizeof(long); i++) {
  s = (unsigned char *)(&L) + i;
  printf("%x", *s);
}
Так получишь 16-ричное представление
Двоичное - попробуй сам.
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
09.02.2012, 22:11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/////////////////////////////////////////////////////////////////////////////////////////
//написать программу, которая покажет машинное представление чисел введёных с клавиатуры. 
//Integet, long double, enum. 
/////////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <bitset>
#include <climits>
#include <ctime>
#include <iostream>
#include <sstream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
    enum  T_type_name  
    {
        INT_TYPE    =   0,
        LONG_DOUBLE_TYPE,
        ENUM_TYPE,
        TYPES_TOTAL        
    };
/////////////////////////////////////////////////////////////////////////////////////////
std::istream&  operator>> (std::istream&  istr, T_type_name&  t)
{
    long long   n;  
    istr    >>  n;
    t   =   T_type_name(n);
    return  istr;
}
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
void  input_number_and_print_its_machine_representation()
{
    const T_str     TYPE_NAME  =   typeid(T).name();
    T_str           s;
    T               t;
    bool            successfully_input  =   false;
 
    do
    {
        std::cout   <<  "Input value of type "
                    <<  TYPE_NAME
                    <<  ": ";
 
        std::cin    >>  s;
        std::istringstream  ssin(s);
        char                c;
        successfully_input  =       (ssin   >>  t)  !=  0
                                &&  (ssin   >>  c)  ==  0;
 
    }while( !successfully_input );
 
    std::cout   <<  std::endl
                <<  "Machine representation of number "
                <<  t
                <<  " of type "
                <<  TYPE_NAME
                <<  ":"
                <<  std::endl;
 
    char*   p   =   reinterpret_cast<char*>(&t);
 
    for(int  i = 0; i < sizeof(T); ++i)
    {
        std::cout   << std::bitset<CHAR_BIT>(*p++).to_string()
                    <<  " ";
    }
    std::cout   <<  std::endl
                <<  std::endl
                <<  std::endl
                <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  input_number_and_print_its_machine_representation_for_variant
    (T_type_name  type_name)
{
    switch(type_name)
    {
    case INT_TYPE:
        input_number_and_print_its_machine_representation<  int         >();
        break;
 
    case LONG_DOUBLE_TYPE:
        input_number_and_print_its_machine_representation<  long double >();
        break;
 
    case ENUM_TYPE:
        input_number_and_print_its_machine_representation<  T_type_name >();
        break;
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{    
    srand(unsigned(time(0)));
 
    for(;;)
    {
        input_number_and_print_its_machine_representation_for_variant
            (                
                T_type_name
                    (
                        rand() % TYPES_TOTAL
                    ) 
            );    
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2012, 22:11
Помогаю со студенческими работами здесь

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

Гарантирует ли стандарт атомарное чтение и запись данных, размер которого не более чем машинное слово?
Насколько я знаю атомарность для чтения и записи данных которые не более чем одно машинное слово, гарантируется на уровне процессора. А со...

Сколькими способами можно составить машинное слово из пяти букв, так чтобы буквы в слове не повторялись
помогите мне задачами никак решить не могу Буквы слова КОМБИНАТОРИКА написаны на карточках. Сколькими способами можно составить...

Машинное представление числа
Ребята сейчас задам глупый вопрос) Но ответа на него не знаю....в общем вот моя программа по переводу числа типа float в машинное...

Машинное представление информации
Добрый вечер. Долго думал, куда написать эту тему и додумался написать в этот раздел, прошу прощения если не туда пишу. Дорогие...


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

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

Новые блоги и статьи
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru