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

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

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

День добрый, помогите пожалуйста написать такую программу, я попробовал, но она не работает, не совсем понимаю почему.
#include "stdio.h"
 
int main(void)
{
    int x; int y,n=0;
    printf("Введите число х: ");
    scanf("%d", x);
    while( x > 0 ) {
        y = (x % 2);
        n = y + n;
        x = int(x/2);
    }
    printf("%d", n);
 
    getchar();
 
    return 0;
}

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    const int size = sizeof(unsigned int)*8;
    unsigned int decNum, i;
    char binNum[size] = {0};
    printf("Enter: ");
    scanf("%d",&decNum);
    for (i=0; i<size; i++)
    {
        binNum[i] = decNum % 2;
        decNum /= 2;
    }
    for (int i=size-1; i>=0; i--)
    {
        printf("%d",binNum[i]);
        if (i%8==0)
            printf(" ");
 
    }
    printf("\n");
    system("pause");
    return 0;
}

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

  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
Похожие ответы