Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Регулярное выражение regex TCHAR *s = (TCHAR*)"mov eax,dword"; regex r("mov eax,dword{4,}]"); if (regex_match(s, r)) { MessageBox(NULL, "True", NULL, MB_OK); } https://www.cyberforum.ru/ cpp-beginners/ thread2497150.html C++ Вывести на экран элементы, для кот. зарплата меньше чем значение Х
Дан класс Рабочий с приватными (private) полями: Имя, дата, дата приема на работу, должность, зарплата и публичные поля: конструктор без параметров, конструктор с параметрами, деструктор и...
C++ Функция определяющая високосность года Описать функцию IsLeapYear(Y) логического типа, которая возвращает True, если год Y (целое положительное число) является високосным, и False в противном случае. Вывести значение функции IsLeapYear... https://www.cyberforum.ru/ cpp-beginners/ thread2497132.html C++ Циклы: определить, какое количество отрицательных чисел записано в начале последовательности Дана последовательность из n вещественных чисел, начинающаяся с отрицательного числа. Определить, какое количество отрицательных чисел записано в начале последовательности. Условный оператор не... https://www.cyberforum.ru/ cpp-beginners/ thread2497128.html
C++ Циклы: найти сумму действительных чисел, которые больше p
Дано натуральное число n и действительные числа b1 b2 b3 Узнать сумму действительных чисел которые больше p. Помогите решить задачу. Заранее спасибо!
C++ Эмуляция действий персонажа Разработайте программу для эмуляции действий персонажа, имеющего два параметра: 1. Здоровье, ограничено пределом здоровья. 2. Мана, не имеет границ. Персонаж может: 1. Получите... https://www.cyberforum.ru/ cpp-beginners/ thread2497118.html
C++ Удалите элементы, индексы которых делятся на B[0] и т.д. до B[m] помогите пожалуйста выполнить удаление элементов ? Есть две последовательности чисел: 1. A, A, ..., A . 2. B, B, ... ,B . Выполните следующие операции с последовательностью A : 1. ... https://www.cyberforum.ru/ cpp-beginners/ thread2497116.html Получить максимальный размер C++
Привет ребята. Столкнулся с такой проблемой. В цикле получаю размеры файлов. Файлов много. И вот как мне найти из размеров максимальный?
C++ Алгоритм First Fit Исходные данные в программе: Пакет заданий 379,395,760,379,241,200,105,40,395,105 - это какая переменная? Как добавить Время Т0 - ? равное 900 // C++ implementation of First - Fit algorithm ... https://www.cyberforum.ru/ cpp-beginners/ thread2497100.html C++ Вывести определенные элементы матрицы и суммировать их Дана матрица размером 5 на 5 с рандомными числами от 0 до 4 вывести из нее определенные элементы матрицы и суммировать их https://www.cyberforum.ru/ cpp-beginners/ thread2497082.html
Вызвано исключение при инициализации массива long long int C++
long long int c = {}; Если убрать один long, программа запускается и работает нормально. Почему?
C++ Перевод числа в двоичную систему счисления Добрый вечер! Нужна программа, которая запрашивает целое число (положительное, отрицательное или ноль), разрядность типа данных и его вид – знаковый или беззнаковый. На выходе программы должно быть... https://www.cyberforum.ru/ cpp-beginners/ thread2497070.html
2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289
0

Найти ошибку в коде. Представление числа в памяти компьютера - C++ - Ответ 13809840

06.09.2019, 07:02. Показов 476. Ответов 1
Метки (Все метки)

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

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
#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;
 
int main()
{
    setlocale(0, "");
    int number = 0, number1 = 0, razr = 0, type = 0, x = 1, i = 0;
    vector <int> bin; //тут хранится двоичный вид числа
    
 
    cout << "Введите число: "; //вводим число
    while (!(cin >> number) || (cin.peek() != '\n')) //проверяем на корректность
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка! Повторите попытку: ";
    }
    number1 = number; //чтобы не испортить введенное число
    
 
    cout << "Введите разрядность (от 1 до 4 байт): "; //вводим разрядность
    while (!(cin >> razr) || (cin.peek() != '\n') || (razr != 1 && razr != 2 && razr != 4)) //проверяем на корректность
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка! Повторите попытку: ";
    }
 
 
    cout << "Введите тип (0 - беззнаковый, 1 - знаковый): "; //вводим тип
    while (!(cin >> type) || (cin.peek() != '\n') || (type != 0 && type != 1)) //проверяем на корректность
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Ошибка! Повторите попытку: ";
    }
 
 
    while (pow(2, x) <= abs(number)) x++; //считает количество занятых битов
 
    if (razr * 8 > x) cout << "Ошибка! Переполнение - не хватает разрядов." << endl;
    else
    {
        if (type == 0 && number < 0) cout << "Ошибка! Данное число не входит в диапозон беззнакового типа." << endl;
        if (type == 1 && number > 127 && razr == 1) cout << "Ошибка! Данное число не входит в диапозон знакового типа." << endl;
        else
        {
            bin.resize(x);
            for (int i = 0; i < x; ++i) //перевод в двоичную систему
            {
                bin[i] = abs(number % 2);
                number = number / 2;
            }
 
            bin.resize(razr * 8, 0); //добавление нулей
            reverse(bin.begin(), bin.end());
 
            if (type == 0) //вывод беззнакового числа
            {
                cout << "Представление числа в компьютере: ";
                for (int k = 0; k < bin.size(); k++) cout << bin[k]; cout << endl;
            }
            else //вывод знакового числа
            {
                if (number1 >= 0) //знаковое число положительное
                {
                    cout << "Представление числа в компьютере: ";
                    for (int k = 0; k < bin.size(); k++) cout << bin[k]; cout << endl;
                }
                else //знаковое число отрицательное
                {
                    for (int k = 0; k < bin.size(); k++) //обратный код
                    {
                        if (bin[k] == 0) bin[k] = 1;
                        else bin[k] = 0;
                    }
                    cout << "Обратный код: ";
                    for (int k = 0; k < bin.size(); k++) cout << bin[k]; cout << endl;
 
 
                    if (bin[bin.size() - 1] == 0) bin[bin.size() - 1] = 1; //если обратный код окнчивается на 0 
                    else //если обратный код оканчивается на 1
                    {
                        reverse(bin.begin(), bin.end());
                        int i = 0;
                        for (int k = 0; k < bin.size(); k++)
                        {
                            if (bin[k] == 0 && i == 0) { i = k; bin[k] = 1; }
                        }
                        for (int k = 0; k < i; ++k)
                        {
                            bin[k] = 0;
                        }
                        reverse(bin.begin(), bin.end());
                    }
                    cout << "Дополнительный код: ";
                    for (int k = 0; k < bin.size(); k++) cout << bin[k]; cout << endl; //вывод дополнительного кода
 
                }
            }
 
        }
    }
 
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Найти ошибку в коде. Представление числа в памяти компьютера C++
0

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

Миниатюры
Найти ошибку в коде. Представление числа в памяти компьютера   Найти ошибку в коде. Представление числа в памяти компьютера  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2019, 07:02
Готовые ответы и решения:

Не могу найти ошибку в коде с динамическим выделением памяти
Делаю класс &quot;вектор&quot;. Вот код, вроде бы всё нормально, но почему-то всё вылетает после вывода на...

Представление в памяти компьютера типа double
нужна помощь в представление ВПК (в памяти компютера) тип данних double например нам дано такое:...

Объясните задачу про представление вещественных чисел в памяти компьютера
Собственно знать как и что представляется в компе - необходимо, а особенно как представляются...

Вывести все простые числа до заданного n (найти ошибку в коде)
#include &lt;iostream&gt; using namespace std; int main() { int n, i, a; cout &lt;&lt; &quot;Input the...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2019, 07:02

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

Подсчет числа слов в предложении с использованием перечислений. Найти ошибку в коде
где в коде ошибка? // подсчет чила слов в предложении с использованием перечислений.cpp:...

Внутреннее представление числа в памяти
нужно сделать реализацию числа в памятиfloat d1 = 72.9e-8;... а как??? это нужно число перевести...

Битовое представление вещественного числа, ошибка в коде
#include &lt;iostream&gt; using namespace std; void binary (double x); //функция вывода...

представление в памяти компьютера числа типа double
Запишите на языке Pascal программу с использованием процедур (функций): определить для...

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