Форум программистов, компьютерный форум CyberForum.ru

перевод десятичного вещественного в машинный код(двоичный код) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти среди чисел те, которые являются квадратами некоторого числа n http://www.cyberforum.ru/cpp-beginners/thread728817.html
даны целые положительные числа а1,а2,...,an. Найти среди них те, которые являются квадратами некоторого числа n.
C++ openMP parallel sections Здравствуйте. Недавно решил попробовать что такое openMP и вообще параллельное программирование. Ради эксперимента выбрал задачку на перебор подпоследовательностей длины M из массива длины N. Пишу такой код: #pragma omp parallel { #pragma omp parallel sections { #pragma omp section { foo(0,N,M,model,arr,set,sum1,b1,b2,b3,b4,"1.txt"); printf ("id = %d, \n",... http://www.cyberforum.ru/cpp-beginners/thread728808.html
C++ Списки
Разработать ниже приведенную иерархию классов с объявлением объектов конечного производного класса с помощью конструкорив по умолчанию и инициализации: базовый класс: Дата (год, месяц, день); базовый класс: Топливо (тип топлива (АИ-92, АИ-95, АИ-98, дизельное), цена за литр); производный класс: оператор (Фамилия, Имя, дата (рождение)); производный класс: Операция продажи (Оператор, Топливо,...
Опишите структуру с именем Person, содержащую следующие поля C++
Как написать программу? Задание 1: Опишите структуру с именем PERSON, содержащую следующие поля: • фамилия и инициалы • дата рождения (массив из трех чисел) • адрес. Задание 2: Напишите программу, выполняющую следующие действия: • ввод клавиатуры данных в массив, состоящий из 10 структур типа PERSON • вывод на экран информации о людях, чья фамилия введена с клавиатуры:
C++ Ошибка вывода на экран http://www.cyberforum.ru/cpp-beginners/thread728802.html
#include <iostream> #include <cstdlib> using namespace std; struct nnm{ long int val; nnm *next; }; int main() {
C++ Матрицы Программа должна запрашивать размер матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел. Верхняя граница для значения элементов матрицы также вводится с клавиатуры. Дана целочисленная квадратная матрица. 1)Найти сумму элементов в строках, содержащих хотя бы один неотрицательный элемент. 2)Определить номер последнего столбца, не содержащего ни одного нулевого элемента.... подробнее

Показать сообщение отдельно
Runlikebunny
Сообщений: n/a
12.12.2012, 19:15     перевод десятичного вещественного в машинный код(двоичный код)
Привет, в итоге получилось нечто подобное. Сверялся, вроде работает верно.
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
void perevod_deistvit_chisla(int*massiv, float number)  //0-знак, 1-9-экспонента, 10-31-мантисса
{
    float fracOfnumber=0;
    int sizeOfexp=0, intOfnumber=0, dubl_intOfnumber;
    int counter=0;
 
    if (number<0)
    {
        number=abs(number);
        massiv[0]=1;
    }
 
    fracOfnumber=number-floor(number);
 
    if (number>=1)
    {
        intOfnumber=floor(number);
        dubl_intOfnumber=floor(number);
        while (dubl_intOfnumber>1)
        {
            dubl_intOfnumber/=2;
            ++sizeOfexp;
        }
        for (int k=sizeOfexp; k>0; --k)
        {
            massiv[8+k]=intOfnumber%2;
            intOfnumber/=2;
        }
        while (fracOfnumber!=1 && 9+sizeOfexp+counter!=32)
        {
            fracOfnumber*=2;
            if (fracOfnumber<1)
                massiv[9+sizeOfexp+counter]=0;
            else
            {
                massiv[9+sizeOfexp+counter]=1;
                --fracOfnumber;
            }
            ++counter;
        }
        sizeOfexp+=127;
        counter=8;
        while (sizeOfexp>0)
        {
            massiv[counter]=sizeOfexp%2;
            sizeOfexp/=2;
            --counter;
        }
    }
    else
    {
        do
        {
            fracOfnumber*=2;
            ++sizeOfexp;
        }
        while (fracOfnumber<1);
        --fracOfnumber;
        counter=9;
        while (fracOfnumber!=1 && counter!=32)  
        {
            fracOfnumber*=2;
            if (fracOfnumber<1)
                massiv[counter]=0;
            else
            {
                massiv[counter]=1;
                --fracOfnumber;
            }
            ++counter;
        }
        sizeOfexp=127-sizeOfexp;
        counter=8;
        while (sizeOfexp>0)
        {
            massiv[counter]=sizeOfexp%2;
            sizeOfexp/=2;
            --counter;
        }
    }
}
 
Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru