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

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

Восстановить пароль Регистрация
 
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
15.02.2013, 17:46     Не работает программа перевода чисел #1
Задание - написать программу,которая переводила бы число типа 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++ Программа для перевода чисел из 10 системы в 2
C++ Не работает программа по выводу чисел.
C++ непойму где ошибка, программа перевода чисел..
Программа для перевода чисел из 10сс в 2сс C++
C++ Программа перевода чисел из СС
Программа перевода чисел C++
Программа для перевода чисел C++
C++ Программа перевода
C++ Программа перевода арабских чисел в римские
C++ Программа перевода чисел из 10-ичной в 2-ичную
Программа для перевода чисел из 16 системы в 2 на C++ C++
Почему программа поиска простых чисел работает только до 61? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3079 / 1854 / 277
Регистрация: 27.08.2010
Сообщений: 4,995
Записей в блоге: 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
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 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" специально для массива?
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
15.02.2013, 20:46     Не работает программа перевода чисел #5
atoi переводит символы в число, hhd - беззнаковое короткое целое.

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

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