Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Noob1233
1 / 1 / 0
Регистрация: 04.02.2014
Сообщений: 45
1

Перевод из десятичной системы исчесления в двоичную

23.02.2014, 23:52. Просмотров 2252. Ответов 8
Метки нет (Все метки)

Помогите разобраться в чем ошибка. Вот попробывал сделать что то типо для перевода из десятиричной системы исчесления, в двоичную вот код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conip.h>
main()
{  
 int b=2,c,i;
 printf("vvedite 4islo");
 scanf ("&d",&i);
 while (i>0)
 {      i=i/b;
        c=i%b;
 
 printf("%3d",c);
}
getch();
}
Но ругаеться почему то на функцию "getch();"
ошибка-" ' getch' undeclared (first use this function)-почему ругаеться, подскажите, и еще правилньо ли я использовал операцию взятие остатка и записывая его в отдельную переменную, просто так и не нашел нормального описания про этот операнда
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 23:52
Ответы с готовыми решениями:

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

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

Перевод из десятичной(двоичной) системы счисления в двоичную(десятичную)
Всем добрый день, кто может помочь как можно реализовать данную задачу на С? Уже долго мучаюсь с...

Перевод из десятичной системы unsigned long long в двоичную c битовыми операциями, получается странный реультат
Доброго времени суток! Нужно выразить число в двоичной системе, показав все 64 символа...

Перевод из десятичной в двоичную СС
Накалякал вот такое вот дело: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int d, x;...

8
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10728 / 6440 / 1598
Регистрация: 25.07.2009
Сообщений: 12,191
24.02.2014, 00:50 2
Цитата Сообщение от Noob1233 Посмотреть сообщение
<conip.h>
<conio.h> и то, если под виндой. В линухах такого нет.

Добавлено через 2 минуты
Цитата Сообщение от Noob1233 Посмотреть сообщение
правилньо ли я использовал операцию взятие остатка
нет. Зачем там вообще этот адский цикл?
C
1
c = i % b;
вполне достаточно.
1
Noob1233
1 / 1 / 0
Регистрация: 04.02.2014
Сообщений: 45
24.02.2014, 00:50  [ТС] 3
easybudda, Спасибо, а взятия остатка я правильно выполнил?
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10728 / 6440 / 1598
Регистрация: 25.07.2009
Сообщений: 12,191
24.02.2014, 00:53 4
Цитата Сообщение от Noob1233 Посмотреть сообщение
взятия остатка я правильно выполнил?
выше ответил... неправильно...
1
Noob1233
1 / 1 / 0
Регистрация: 04.02.2014
Сообщений: 45
24.02.2014, 00:58  [ТС] 5
easybudda, easybudda, выходить из цикла break`ом? а то так получаеться зацикливаеться
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10728 / 6440 / 1598
Регистрация: 25.07.2009
Сообщений: 12,191
24.02.2014, 01:11 6
Цитата Сообщение от Noob1233 Посмотреть сообщение
выходить из цикла break`ом?
не, я задание не сразу посмотрел, там вообще всё не так. Если надо число в двоичном виде напечатать, на форуме вариантов дюжина найдётся, не меньше. Вот например:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
void binprint(unsigned n) {
    if ( n > 1 )
        binprint(n >> 1);
    printf("%u", n & 1);
}
 
int main(void) {
    unsigned n;
    
    while ( printf("\nNumber: ") && scanf("%u", &n) == 1 && printf("Binary form: ") )
        binprint(n);
    
    return 0;
}
1
Noob1233
1 / 1 / 0
Регистрация: 04.02.2014
Сообщений: 45
24.02.2014, 01:23  [ТС] 7
easybudda, нифига не понял, наверное еще не дошел до этого, даже еще до массивов не дошёл,думал может как полегче можно будет сделать только лишь с пройдеными простенькими ветвлениями и циклами, ну ладно, будем разбираться. Всеравно Большое спасибо)
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10728 / 6440 / 1598
Регистрация: 25.07.2009
Сообщений: 12,191
24.02.2014, 01:52 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Noob1233 Посмотреть сообщение
думал может как полегче
Ну например:
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
#include <stdio.h>
#include <limits.h>
 
/* размер переменной типа int в битах */
#define INT_BIT ( CHAR_BIT * sizeof(int) )
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 ) {
        /* буфер для хранения цифр в виде символов + 1 символ для терминального нуля */
        char buf[INT_BIT + 1] = { 0 };
        int i;
        
        for ( i = INT_BIT - 1; i >= 0; --i ) {
            buf[i] = n % 2 + '0';
            n /= 2;
        }
        
        printf("Binary form: %s\n", buf);
    }
    
    return 0;
}
Добавлено через 5 минут
Цитата Сообщение от Noob1233 Посмотреть сообщение
только лишь с пройдеными простенькими ветвлениями и циклами
тут проблема есть: если в цикле получать остаток от деления от одного числа и прибавлять его к другому умножая его на то, на что первое делишь, на выходе получишь перевёрнутое число. Второй момент: если в переменную типа int писать число, которое в десятичном виде выглядит так, как должно бы исходное в двоичном, диапазон допустимых чисел резко сузится...
0
Catstail
Модератор
25552 / 13147 / 2471
Регистрация: 12.02.2012
Сообщений: 21,517
24.02.2014, 17:40 9
Noob1233, не ругаетЬся, а ругается!!! А код - вот он:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int d2b(int n)
{
    int r;
    if (n == 0) 
        return 0;
    else
    {
        r=d2b(n / 2);
        return r*10+(n % 2);
    }
}
 
 
int main(int argc, char* argv[])
{
    int n;
    printf("n_d=");
    scanf("%d",&n);
    printf("n_b=%d \n",d2b(n));
    return 0;
}
0
24.02.2014, 17:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 17:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перевод из десятичной в двоичную систему
Программа для перевода из десятичной в двоичную систему. Как сделать чтобы цифры ответа выводились...

Конвертер перевода из десятичной системы счисления в шестнадцатиричную и двоичную
Здравствуйте !.Помогите пожалуйста написать программу перевода Десятичной СС в 16ую и 2ую .Буду...

Как перевести число из десятичной системы счисления в двоичную?
Есть ли какие-нибудь базовые функции, либо всё делать вручную? Если вручную, то приведите,...


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

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

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