Буду рад, если оставите пару комментариев через //, объясняющие работу куска кода,
больше всего у меня проблем с пониманием указателей, всё остальное, в принципе, понял, а вот указатели вообще не понимаю, когда и где нужны.
Условие
Создайте класс Binary, реализующий работу с бинарным представлением целых неотрицательных чисел.
Класс должен иметь:
Приватный массив для хранения битов числа. Каждый бит представляется в виде логического значения. Размер: 32 значения.
Конструктор по умолчанию (создаёт число, равное нулю).
Параметризованный конструктор, создающий бинарное число из целочисленного.
Параметризованный конструктор, создающий бинарное число из строки вида "1010110101"
Метод для вывода бинарного числа на экран в виде последовательности единиц и нулей. При выводе в числе не должно быть ведущих нулей.
Метод для получения из бинарного числа значения типа int
Приблизительное описание класса:
class Binary {
bool data[32];
public:
Binary();
Binary(int value); // Создание объекта из целого числа
Binary(char *s); // Создание объекта из строки вида "101110"
void show() const; // Спецификатор const гарантирует, что в этом методе не изменяется состояние объекта.
// В реализации он также указывается.
int to_int() const;
};
При помощи данного класса напишите программу, которая будет принимать с клавиатуры целое число и выводить его в бинарном виде.
Формат входных данных
На вход программе подаётся целое неотрицательное число N (N < 231)
Формат выходных данных
Программа должна вывести последовательность нулей и единиц, являющуюся представлением числа N в двоичной системе счисления.
Примечания
Для того, чтобы преобразовать десятичное число в двоичное, достаточно использовать алгоритм разделения числа на цифры (с младших или старших разрядов), предварительно заменив в нём основание системы счисления (10 -> 2)
входные данные
6
0
320
выходные данные
110
0
101000000
C/C++
Создать простой класс, конструктор, и несколько функций. Не могу решить задачу, плохо понял тему, помогите пожалуйста.
вроде так
https://pastebin.com/pTEAg6LP
https://pastebin.com/pTEAg6LP
// Подключаем необходимые библиотеки
#include
#include
using namespace std;
// Объявляем класс Binary
class Binary {
private:
bool data[32]; // Приватный массив для хранения битов числа
public:
Binary(); // Конструктор по умолчанию
Binary(int value); // Параметризованный конструктор для создания числа из целого числа
Binary(char *s); // Параметризованный конструктор для создания числа из строки
void show() const; // Метод для вывода числа в двоичном виде
int to_int() const; // Метод для получения целочисленного значения числа
};
// Реализация конструктора по умолчанию
Binary::Binary() {
for(int i = 0; i < 32; i++) {
data[i] = 0; // Инициализируем все биты числа нулями
}
}
// Реализация параметризованного конструктора для создания числа из целого числа
Binary::Binary(int value) {
for(int i = 0; i < 32; i++) {
data[i] = value % 2; // Вычисляем остаток от деления на 2 и записываем его в соответствующий бит
value /= 2; // Делим значение на 2 для перехода к следующему биту
}
}
// Реализация параметризованного конструктора для создания числа из строки
Binary::Binary(char *s) {
int len = strlen(s); // Вычисляем длину строки
for(int i = 0; i < 32; i++) {
if(i < len) {
data[i] = (s[len - i - 1] == '1'); // Если строка содержит символ '1', то записываем в соответствующий бит значение true
} else {
data[i] = 0; // Иначе инициализируем бит нулём
}
}
}
// Метод для вывода числа в двоичном виде
void Binary::show() const {
int i = 31;
while(i >= 0 && !data[i]) {
i--; // Находим индекс последнего ненулевого бита
}
if(i < 0) {
cout = 0; i--) {
cout > n;
Binary binary(n);
binary.show();
return 0;
}
Сначала определяем класс Binary с требуемыми методами и конструкторами, затем в функции main считываем целое число n, создаем объект класса Binary с помощью параметризованного конструктора Binary(int value) и выводим его бинарное представление с помощью метода show().Похожие вопросы
- Задача на С++ Остатки, помогите пожалуйста понять, что не так.
- Помогите решить задачу на языке программирования Си, пожалуйста
- Не могу решить задачу в яндекс практикуме
- Можете решить задачу через delete [ ] ? с++
- Программирование C++ / не могу решить задачу
- Помогите решить задачу, c++, функции
- Помогите решить задачу пожалуйста, в C++
- Как Создать иерархическую систему классов, на примере этого задания? Второй день уже туплю, помогите пожалуйста... С++
- Помогите пожалуйста решить задачу на языке С#.
- Помогите пожалуйста решить задачу по с++
Пример использования указателя для обращения к элементам массива: