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

Заполнение значения строки из числа в десятичной системе - C++

Восстановить пароль Регистрация
 
satanyuha
0 / 0 / 0
Регистрация: 07.03.2015
Сообщений: 7
13.01.2016, 11:00     Заполнение значения строки из числа в десятичной системе #1
Создать класс БИТОВАЯ_СТРОКА. Строки данного класса могут содержать только символы '0' и '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
#include "lab2.h"
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <dos.h>
#include <bitset>
 
using namespace std;
 
 
void lab2::iString()
{
    cout <<"Введите кол-во вводимых строк: ";
    cin >>n;
    str=new char *[n];
    stinv=new char *[n];
    for (int i=0; i<n; i++)
    {
     str[i]=new char [500];
     stinv[i]=new char [500];
     cout <<"Введите строку " <<i+1 <<": ";
     cin >>str[i];
    }
}
 
void lab2::Decimal()
{
int num;
int nsI;
cout<<"Введите номер бинарной строки: ";
cin>>nsI;
if (nsI<=0 || nsI>n) {cout<<"Нет такой строки" <<endl;}
else
    {
        for (int i=0; str[nsI-1][i]!='\0'; i++) {stinv[nsI-1][i]=str[nsI-1][i];}
 
for (int i=0;str[nsI-1][i]!='\0'; i++)
        {
            if (str[nsI-1][i]!='0' &&str[nsI-1][i]!='1') {cout<<"Строка не является бинарной" <<endl; break;}
        }
        cin>>num;
        for (int i=0; str[nsI-1][i]!='\0'; i++)
            {    while(num<2){
if (num%2!=1) {stinv[nsI-1][i]='0';}
else if (num%2!=0) {stinv[nsI-1][i]='1';}
num=num/2;  }
cout<<stinv[nsI-1][i];
            }
        }
    }
lab2::~lab2()
{
    for (int i=0; i<n; i++) {delete [] str[i]; delete [] stinv[i];}
    delete [] str; delete [] stinv;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 11:00     Заполнение значения строки из числа в десятичной системе
Посмотрите здесь:

C++ Напечатать в пятеричной системе исчисления числа от 0 до n
C++ Заменить все значения элементов матрицы нулями, значения которых меньше числа k
Рандомное заполнение матрицы, причем от числа до числа, введенного с клавиатуры C++
C++ Представление числа в k-ой системе счисления
C++ Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе)
C++ Определить все ли числа натурального числа N, представленного в 9ричной системе счислений являются одинаковыми
C++ Обьяснить представление числа в двоичной системе
C++ Наибольшие и наименьшие значения, на вашей системе, следующих типов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Default_070
 Аватар для Default_070
23 / 23 / 10
Регистрация: 01.10.2015
Сообщений: 172
Завершенные тесты: 1
13.01.2016, 11:07     Заполнение значения строки из числа в десятичной системе #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
std::string convert_in_double(int number)
{
    std::string result;
    while(true)
    {
        result.push_back(number%2+'0');
        number = int(number/2);
        if(number == 0)
            break;
    }
    if(result.size() % 2 == 0)
    {
        for(int i = 0; i < result.size()/2; i++)
        {
            char x = result[i];
            result[i] = result[result.size()-i-1];
            result[result.size()-i-1] = x;
        }
    } else {
        for(int i = 0; i != int(result.size()/2); i++)
        {
            char x = result[i];
            result[i] = result[result.size()-i-1];
            result[result.size()-i-1] = x;
        }
    }
 
    return result;
}
Добавлено через 1 минуту
number можно получить операцией static_cast
К примеру:
C++
1
2
int j = static_cast<int>('B');
std::cout << convert_in_double(j);
satanyuha
0 / 0 / 0
Регистрация: 07.03.2015
Сообщений: 7
13.01.2016, 12:30  [ТС]     Заполнение значения строки из числа в десятичной системе #3
а как это в класс записать?
Yandex
Объявления
13.01.2016, 12:30     Заполнение значения строки из числа в десятичной системе
Ответ Создать тему
Опции темы

Текущее время: 07:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru