С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 25

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

17.10.2020, 15:52. Показов 766. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2020, 15:52
Ответы с готовыми решениями:

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

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2020, 15:52
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru