0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 25
1

Класс для целых произвольной длины во внутреннем двоичном представлении в прямом коде

17.10.2020, 15:52. Показов 521. Ответов 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
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
 
class Bytes
{
public:
    Bytes() {
        n_ = 0;
        byte_ = new char[1];
        byte_[0] = 0;
    }
    Bytes(int digit) {
        DecToBin(digit);
    }
    }
    ~Bytes() {
        delete[] byte_;
    }
    void DecToBin(int digit) // Перевод из десятичной системы в двоичную
    {
        if (digit >= 0) sign_ = 0;
        else sign_ = -1;
        digit = abs(digit);
        int temp = 1, n_ = 0;
        while (digit > temp)
        {
            temp = temp * 2;
            n_++;
        }
        byte_ = new char[n_];
        for (int i = n_ - 1; i >= 0; --i)
        {
            byte_[i] = digit % 2;
            digit = digit / 2;
        }
        
    }
    void show() {
        for (int i = n_ - 1; i >= 0; --i) cout << byte_[i];
        cout << endl;
    }
private:
    char* byte_; // биты
    int n_; // количество разрядов в двоичной записи
    char sign_; // знак числа
};
 
int main()
{
    Bytes b0(5);
    b0.show();
    return 0;
}
Проблема: я инициализирую объект b0 числом 5, в конструкторе оно переводится в двоичное представление. После этого я хочу вывести двоичную запись на экран, но ничего не выводится. Посмотрел с помощью точек останова, при переводе числа в двоичное данные записываются в какие-то локальные переменные, а не в переменные класса. То есть имеются две переменные n_, у локальной значение 3, а у переменной класса мусор. И метод show берёт значение n_ класса, вследствие чего программа работает неправильно. Как это можно исправить, чтобы значения записывались в переменные класса?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2020, 15:52
Ответы с готовыми решениями:

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

Посчитать количество едениц в двоичном представлении числа. Найти ошибку в коде
#include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; void main() { union {...

Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц
Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего...

Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц
Поправьте код Указать то число заданного множества целых чисел, в двоичном представлении которого...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2020, 15:52
Помогаю со студенческими работами здесь

Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц
Можете помочь с данной задачей? Указать то число заданного множества целых чисел, в двоичном...

Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц
Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего...

Функция void: в последовательности целых чисел найти число, в двоичном представлении которого больше всего единиц
Разработать процедуру, которая в последовательности целых чисел находит число, в двоичном...

Класс "строка" для работы со строками произвольной длины
Написать и отладить программу,использующую класс &quot;строка&quot; для работы со строками произвольной...

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

Умножение целых чисел произвольной длины без учета знака
Умножение целых чисел произвольной длины без учета знака!!!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru