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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mexico92
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 44
#1

Объединить ветки оператора выбора - C++

01.07.2014, 12:08. Просмотров 194. Ответов 0
Метки нет (Все метки)

Ребят, нужна помощь. Последние две ветки необходимо объединить в одну, начиная с c<0.
Тоесть если после запятой нет цифр, то...
Заранее большое спасибо

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "stdafx.h"
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
using namespace std;
 
 
static union{
    float mant; 
    unsigned int bz; //целое беззнаковое
    } chislo;
 
void bin(unsigned int a) //код в двоичной системе
{   char b[32];
    for (int i = 0; i < 32; i++){
        b[i] = a % 2;
        a = a / 2;}
    for (int i = 0; i < 32; i++)
        printf("%1d", b[31 - i]);}
 
int main(){
    setlocale(LC_ALL, "Russian");
    unsigned int a, b;
    int c;
    char d[32];
    float input;
    cout << "Введите число: ";
    cin>>input;
    chislo.mant=input;
 
    a = chislo.bz;  //целое число без знака
    cout <<"Машинный код числа: ";
    bin(a); //Вывод числа в двоичном коде
    cout << endl;
    b = a;
    //сдвиг до порядка
    a <<= 1;
    a >>= 24;
    cout<<"Порядок в двоичном коде: ";
    bin(a); // вывод порядка в двоичном виде
    cout << endl;
 
    c = a;
    c = c - 127;//перевод порядка в десятичный вид
    cout<<"Порядок в десятичном виде: ";
    cout << c;//вывод порядка в десятичном виде
    cout << endl;
 
    b <<= 9;
    b >>= 9;
    cout<<"Мантисса: ";
    bin(b); //вывод мантиссы в двоичном коде
    cout << endl;
 
    b = b | 040000000;
    cout<<"Мантисса с 1: ";
    bin(b);// Вывод мантиссы с единицей
    cout << endl;
    // Перевод в массив числа в двоичном коде
 
    int k = 23 - c;
    int k1 = 32 - k;
    b <<= k1;
    b >>= k1;
    cout<<"Целая часть: ";
    cout << int(input);
 
    cout << endl;
 
 
 
    cout<<"Дробное число: ";
    bin(b);
    cout << endl;
    /*cout << "Число в десятичном виде: 0,";
        for (int i = 0; i < 30; i++){
        b = b * 10;
        unsigned int z = b;
        z >>= 23 - c;
        cout <<z;
        b <<= 32 - (20 - c);
        b >>= 32 - (20 - c);}
        */
 
   if (c<0)
    {
        cout<<"Число в десятичном виде: 0,";
        
        unsigned long long int b=chislo.bz;
        b<<=41;
        b>>=41;
        b=b|040000000;//Добавление единицы 
    
        for (int i=0; i<30; i++)
        {
        b=b*10;
        unsigned long long int Dec=b;
        Dec>>=23-c;
 
        cout<<Dec;
        b<<=41+c;
        b>>=41+c;
        }
    }
    else
        {
        cout<<"Число в десятичном виде: ";
        
        unsigned int b=chislo.bz;
        b<<=9;
        b>>=9;
        b=b|040000000;//Добавление единицы 
 
        unsigned int Dec=b; // Выделение целой части
        Dec>>=23-c;
        cout<<Dec;
        cout<<".";
        b<<=(9+c);
        b>>=(9+c);
        
        for(int i=c; i<30; i++)   // Выделение дробной части
        {
        b=b*10;
        unsigned int Dec=b;
        Dec>>=23-c;
        cout<<Dec;
        b<<=(9+c);
        b>>=(9+c);
        }
        } 
    _getch();
}
Добавлено через 3 часа 2 минуты
//можно удалить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 12:08     Объединить ветки оператора выбора
Посмотрите здесь:

Почему срабатывают две ветки оператора if, хотя ожидается, что будет срабатывать одна? - C++
У меня возник вопрос, вот я делаю ИИ. Но вот у меня так получилось что выполняется два if(a). Как мне быть с этим? Как сделать так, что бы...

задачу с оператора выбора case очень нужно : Пусть элементами равностороннего треугольника являются: 1.Сторона а; 2.Площад - C++
Помогите решить задачу с помощью оператора выбора case очень нужно плиз: Пусть элементами равностороннего треугольника являются: ...

Составить программы с использованием оператора выбора. Ввести первую букву названия страны. Вывести название континента. - C++
Составить программы с использованием оператора выбора. Ввести первую букву названия страны. Вывести название континента.

Сочетания оператора цикла и условного оператора - C++
вывести на экран все числа a от до b , кратные некоторому числу c

Объяснить, почему не выводится код из ветки else - C++
Вот может вы мне объясните, почему не выводится код из ветки else, когда это надо. Задача заменить слово на &quot;a&quot;, если оно является...

Функция удаления листа (или ветки) бинарного дерева - C++
Здравствуйте программисты! Учусь на первом курсе. Возникли проблемы с разработкой функции удаления ветки листа или корня из дерева. Т.е....

Объединить с C# - C++
Есть 2 программы основная на С++ и автоапдейтор написанный на С# можно как нибудь объединить 2 программы тоесть сначала запускается...

Объединить 4 строки - C++
Объединить 4 строки и вывести на монитор подстроку. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() {...

Объединить 2 подстроки - C++
Объединить 2 подстроки

Объединить массивы - C++
Даны два массива A и B размера m, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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