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

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

Войти
Регистрация
Восстановить пароль
 
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
#1

Не работает программа перевода чисел - C++

15.02.2013, 17:46. Просмотров 391. Ответов 4
Метки нет (Все метки)

Задание - написать программу,которая переводила бы число типа unsigned char из десятичной СС в двоичную. Начала писать, используя операцию побитового сдвига, программа выдает правильный результат, но в конце выскакивает окно с ошибкой "debug error".Подскажите пожалуйста, в чем ошибка, заранее спасибо!(Знаю, что в scanf должно быть не %d, а %c (так как тип char), но когда правлю это, программа выдаёт неправильный результат, а ошибка "debug error" уже не выскакивает).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
    unsigned char a;
    int c;
    printf("vvedite desyatichnoe chislo=");
    scanf("%d",&a);
    printf("dvoichnoe chislo=");
    for (int i=0;i<8;i++)
    {
        c=a;
        printf("%d",((c<<i)>>7)&1);
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 17:46     Не работает программа перевода чисел
Посмотрите здесь:

Программа перевода чисел - C++
Здравствуйте :) я новичок в с++ и сейчас пытаюсь написать программу для перевода восьмиразрядного двоичного числа в десятичное....

Программа перевода чисел из СС - C++
unsigned char X; int i, k; scanf(&quot;%d&quot;,&amp;X); for (i=7; i&gt;=0; i--) { k = ((X &gt;&gt; i) &amp; 1); printf(&quot;%d&quot;, k); } ...

Программа для перевода чисел - C++
Вывести на экран таблицу значений десятичных цифр в двоичной системе счисления.

Программа для перевода чисел из 16 системы в 2 на C++ - C++
Нужно написать программу, в которой пользователь вводит число, и оно переводится из 16 в 2. Написать желательно самым понятным и простым...

Программа перевода чисел из 10-ичной в 2-ичную - C++
2. Составить псевдокод программы перевода данных из двоичной системы в десятичную (без циклов, массивов и встроенных функций). Разрешается...

Программа для перевода чисел из 10 системы в 2 - C++
Народ помогите написать программу для перевода чисел из 10 системы в двоичную В консоле Если надо я могу прислать листинг программы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
15.02.2013, 18:23     Не работает программа перевода чисел #2
в чем ошибка
Да во всем, кажется, кроме использования scanf("%d",&a) - при вводе одной цифры, это - корректно.

Разрядность взята с запасом и тип выбран беззнаковым просто "на случай". Обе переменные могут быть даже восьмибитными.

C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned int iDigit = 0;
unsigned int iMask  = 1;
 
printf("Enter a digit: ");
 
scanf("%d",&iDigit);
printf("Binary presentation: ");
 
for (int ii = 7; ii >= 0; --ii)
{
   printf("%d",(iDigit & (iMask << ii)  ?  1  :  0));
}
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
15.02.2013, 18:52     Не работает программа перевода чисел #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char buf[80];
    unsigned short int c, i;
    printf("\n vvedite desyatichnoe chislo= ");
    scanf("%s", &buf[0]);
    printf("\n dvoichnoe chislo=");
    for (i = 0; i < 8; i++) {
        c = atoi(buf);
        printf("%hhd", ((c << i) >> 7) & 1);
    }
    return 0;
}
Добавлено через 54 секунды
здесь без проверки корректности ввода и т.д., но идея такая.
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
15.02.2013, 19:55  [ТС]     Не работает программа перевода чисел #4
Цитата Сообщение от vua72 Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char buf[80];
    unsigned short int c, i;
    printf("\n vvedite desyatichnoe chislo= ");
    scanf("%s", &buf[0]);
    printf("\n dvoichnoe chislo=");
    for (i = 0; i < 8; i++) {
        c = atoi(buf);
        printf("%hhd", ((c << i) >> 7) & 1);
    }
    return 0;
}
Спасибо огромное!
Но не могли бы объяснить, что делает функция "atoi" с массивом buf?И в последнем printf пишут "hhd" специально для массива?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2013, 20:46     Не работает программа перевода чисел
Еще ссылки по теме:

непойму где ошибка, программа перевода чисел.. - C++
пишу прогу которая будет переводить в десятичную систему счисления числа предустановленные в системе остаточных классов (СОК) с заданным...

Программа для перевода чисел из 10сс в 2сс - C++
Всем здорова! Вот тут такая проблема, в код написан правильно, работает, но вот, под строку вывода числа конечного зарезервировано 30...

Не работает программа по выводу чисел. - C++
#include &lt;iostream&gt; using namespace std; void main () { int n, i=0, x, y; cout&lt;&lt;&quot;Vvediten\n&quot;; cin&gt;&gt;n; cout&lt;&lt;&quot;Vvedite...

Почему программа поиска простых чисел работает только до 61? - C++
Добрый день, Помогите, пожалуйста, разобраться. Программа для поиска простых чисел. На экран отображает только простые числа до 61, ...


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

Или воспользуйтесь поиском по форуму:
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
15.02.2013, 20:46     Не работает программа перевода чисел #5
atoi переводит символы в число, hhd - беззнаковое короткое целое.

Добавлено через 10 минут
на самом деле это тоже неправильно, но не совсем правильно
Yandex
Объявления
15.02.2013, 20:46     Не работает программа перевода чисел
Ответ Создать тему
Опции темы

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