Перевод из 10 системы счисления в 2 - C (СИ) (71772)

Узнай цену своей работы

Формулировка задачи:

День добрый, помогите пожалуйста написать такую программу, я попробовал, но она не работает, не совсем понимаю почему.
Листинг программы
  1. #include "stdio.h"
  2. int main(void)
  3. {
  4. int x; int y,n=0;
  5. printf("Введите число х: ");
  6. scanf("%d", x);
  7. while( x > 0 ) {
  8. y = (x % 2);
  9. n = y + n;
  10. x = int(x/2);
  11. }
  12. printf("%d", n);
  13. getchar();
  14. return 0;
  15. }

Решение задачи: «Перевод из 10 системы счисления в 2»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     const int size = sizeof(unsigned int)*8;
  7.     unsigned int decNum, i;
  8.     char binNum[size] = {0};
  9.     printf("Enter: ");
  10.     scanf("%d",&decNum);
  11.     for (i=0; i<size; i++)
  12.     {
  13.         binNum[i] = decNum % 2;
  14.         decNum /= 2;
  15.     }
  16.     for (int i=size-1; i>=0; i--)
  17.     {
  18.         printf("%d",binNum[i]);
  19.         if (i%8==0)
  20.             printf(" ");
  21.  
  22.     }
  23.     printf("\n");
  24.     system("pause");
  25.     return 0;
  26. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем переменные:
    • decNum - переменная для ввода десятичного числа
    • i - счётчик цикла
    • binNum - массив для хранения двоичного представления числа
  3. Выводим приглашение для ввода числа
  4. Считываем десятичное число с помощью функции scanf
  5. Инициализируем массив binNum нулями
  6. Запускаем цикл, который будет перебирать все биты числа, начиная с старшего (правого) бита
  7. В каждой итерации цикла присваиваем соответствующему биту массива binNum значение остатка от деления decNum на 2
  8. Делим decNum на 2 для получения следующего бита
  9. После завершения первого цикла выводим двоичное представление числа, сначала проверяя, не будет ли остаток от деления на 8 (что соответствует сдвигу на 3 бита вправо) больше или равен 8
  10. В конце программы добавляем паузу с помощью функции system, чтобы программа не закрылась сразу после вывода результата
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы