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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
desperateX
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 15
#1

Перевод чисел в двоичную систему счисления - C++

07.04.2013, 21:28. Просмотров 1352. Ответов 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
30
31
32
33
34
35
36
37
38
#include<iostream>
using namespace std;
#include<conio.h>
void inp(int n, int k=0, int i=0) {
    cout<<"vvedit chuslo: ";
    cin>>n;
    char str[80];
    int a=n;
    while (a!=0) {
        a/=2;
        k++;
    }
    while (n!=0) {
        str[i]=n%2;
        if (n%2==0) str[i]='0'; else str[i]='1';
            n=n/2;
        i++;
    }
    for (int b=0; b<k/2; b++) {
        int c=str[b];
        str[i]=str[k-1-b];
        str[k-1-b]=c;
    }}
void out (char str[80], int k) {
    int q=k;
    while (q>0) {
        str[k]='1';
        if (q%3==0) cout<<" ";
        cout<<str[q];
        q--;
    }}
void main() {
    char str[80];
    int n=0, k=0, i=0;
    inp (n, k, i);
    out (str, k);
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2013, 21:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод чисел в двоичную систему счисления (C++):

Перевод букв и чисел в двоичную систему счисления - C++
Здравствуйте, как сделать на C++ перевод букв и чисел двоичную систему счисления ?

Перевод дробных чисел из десятичной в двоичную систему счисления - C++
для натуральных чисел все понятно, и предельно ясно. А как сделать для дробных чисел? Ведь перевод дроби надо умножать, а здесь делить с...

Перевод в двоичную систему счисления - C++
Пожалуйста, помогите с задачкой. Даны два числа a, b их нужно сперва перевести в двоичную систему счисления (сами они из десятичной), а...

Перевод из десятичной в двоичную систему счисления - C++
Здравствуйте товарищи знатоки! Написал такую программу которая переводит десятичные числа в двоичные. Но есть одно НО. Работает она...

Перевод числа в двоичную систему счисления - C++
Написать программу в С++ С КОММЕНТАРИЯМИ!!!: Написать функцию которая заданное натуральное число А переводит в двоичную систему...

Перевод из восьмеричной в двоичную систему счисления - C++
Нужно реализовать перевод числа из восьмеричной в двоичную систему счисления. Не используя cin, cout, не стандартные функции. Была идея...

2
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
07.04.2013, 22:43 #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<iostream>
#include<conio.h>
 
using namespace std;
 
void inp(int n, int& k, int i, char* str) {
    cout<<"vvedit chuslo: ";
    cin>>n;
    //char str[80];
    int a=n;
    while (a!=0) {
        a/=2;
        k++;
    }
    while (n!=0) {
        //str[i]=n%2;
        if (n%2==0) 
            str[i]='0'; 
        else str[i]='1';
        n=n/2;
        i++;
    }
    //for (int b=0; b<k/2; b++) { // исправил, только разворачивать массив не надо
    //    char c=str[b];
    //    str[b]=str[k-1-b];  // было str[i]=str[k-1-b];
    //    str[k-1-b]=c;
    //}
}
 
void out (char str[80], int k) {
    int q=k;
    int size = 4; // может пробелы лучше ставить через каждые 4 цифры? Т.к. байты разделяются на тетрады по 4 байта
    // но конечно можно и оставить триады
    //str[k]='1';    // зачем это?
    for (int i = 0; i < size - q%size && q%size!=0; ++i)  // достраиваем наше число ноликами, но можно, конечно, убрать это
        cout<<"0";
    while (q>0) {
        if (q%size==0&&q!=k) cout<<" ";   // проверка q!=k убирает первый пробел, если длина числа кратна size
        cout<<str[q - 1];
        q--;
    }
}
 
void main() 
{
    char str[80];
    int n=0, k=0, i=0;
    inp (n, k, i, str); // надо передавать массив в функцию, т.к. он не глобальный
    out (str, k);
    system("PAUSE>0");  // как альтернатива getch();
}
2
desperateX
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 15
07.04.2013, 23:00  [ТС] #3
Цитата Сообщение от SummerRain Посмотреть сообщение
исправил
Спасибо очень!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 23:00
Привет! Вот еще темы с ответами:

Перевод целого числа в двоичную систему счисления - C++
Вводится целое число n. Вывести это число в двоичной системе счисления!!...((( как?......

Перевод в двоичную систему счисления и запись результата в массив - C++
Здравствуйте, как сделать перевод в двоичную систему счисления и запись результата в массив типа int ?

Перевод целого десятичного числа в двоичную систему счисления - C++
Перерыл инет, форум нашел кучу разных вариантов и не одного закончено го :( может у кого есть нормальный вариант реализации кода?

Перевод числа в двоичную систему счисления (при помощи функции) - C++
этот алгоритм переводит побитово из числа в строку, нужно сделать из него функцию const unsgined int n = 375; string str; unsigned...


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

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

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