Перевод Из Сс

marina12

New member
15.02.2013
2
0
#1
Задание - написать программу,которая переводила бы число типа unsigned char из десятичной СС в двоичную. Начала писать, используя операцию побитового сдвига, программа выдает правильный результат, но в конце выскакивает окно с ошибкой "debug error".Подскажите пожалуйста, в чем ошибка, заранее спасибо!(Знаю, что в scanf должно быть не %d, а %c (так как тип char), но когда правлю это, программа выдаёт неправильный результат, а ошибка "debug error" уже не выскакивает.
C++:
#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;
}
 
W

Whatka

#2
да в scanf %c
и в цикле замени c=a; на с=a-48;
правильный результат для чисел меньше 9(это по твоему алгоритму)