Используя цикл отобразить этап изменения целого числа из 10-ричной системы в 16-ричную. - C (СИ)

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

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

Используя цикл отобразить этап изменения целого числа из 10-ричной системы в 16-ричную.
вот накидал немного не с циклом проблемка
#include<stdio.h>
#include<conio.h>
main()
{
 float y;
 int x;
 printf("Vvedite zeloe chislo:");
 scanf("%d",&x);
 if(x<=9)
 printf("%d\n",x);
 else
 if(x==10)
 printf("A\n");
 else
  if(x==11)
  printf("B\n");
  else
   if(x==12)
   printf("C\n");
   else
    if(x==13)
    printf("D\n");
    else
     if(x==14)
     printf("E\n");
     else
      if(x==15)
      printf("F\n");
      else
      {
       x=x/16;
       y=x%16;
       printf("%f\n",y);
       printf("%d%d\n",x,y);
      }
      printf("%x",x);
 getch();
 return 0;
}

вот вроде так но только цикл надо а я не могу понять как его и куда вставить:

#include<stdio.h>
#include<conio.h>
main()
{
 int x,y,i;
 printf("Vvedite zeloe chislo:");
 scanf("%d",&x);
   if(x<=9)
   printf("%d\n",x);
   else
    if(x==10)
    printf("A\n");
    else
     if(x==11)
     printf("B\n");
     else
      if(x==12)
      printf("C\n");
      else
       if(x==13)
       printf("D\n");
       else
    if(x==14)
     printf("E\n");
     else
      if(x==15)
       printf("F\n");
       else
       {
        printf("16-richna=%x\n",x);
        y=x%16;
        x=x/16;
        printf("y=%d\n",y);
         if(y==10)
         printf("%dA\n",x);
         else
          if(y==11)
          printf("%dB\n",x);
          else
           if(y==12)
           printf("%dC\n",x);
           else
        if(y==13)
        printf("%dD\n",x);
        else
         if(y==14)
         printf("%dE\n",x);
         else
          if(y==15)
          printf("%dF\n",x);
          else
        printf("Otvet=%d%d\n",x,y);
        }
 getch();
 return 0;
}

Решение задачи: «Используя цикл отобразить этап изменения целого числа из 10-ричной системы в 16-ричную.»

textual
Листинг программы
#include<stdio.h>
#include<conio.h>
main() {
    int x,y,i=28;// 32-4
    char z;
    printf("Vvedite zeloe chislo:"); 
    scanf("%d",&x);
 
    printf("0x");
    do {
        y =  (x >> i ) & 0xf; // 4 bit
        z = (y<10)? y+'0' : y+'7'; // 0||A==10+0x37==0x41
        putch(z);
        if (!i) break;
    }while ((i-=4) || 1) ; // if int == 32 bit == 8 hex-digit
    
    getch();
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с консолью и вводом/выводом данных.
  2. Объявление переменных: целочисленной x, y, инициализированной значением 28 i и символьной z.
  3. Вывод приглашения для ввода целого числа.
  4. Ввод целого числа в переменную x с помощью функции scanf.
  5. Вывод первых двух символов 0x.
  6. Запуск цикла do-while, который будет выполняться до тех пор, пока значение i больше или равно 4.
  7. Внутри цикла происходит следующее:
    • Переменная y принимает значение, полученное путем сдвига влево на i бит числа x и последующего маскирования 4-мя нулями.
    • Если значение y меньше 10, то к нему добавляется цифра, соответствующая его десятичному значению. Если значение больше или равно 10, то к нему добавляется буква, соответствующая его десятичному значению (например, 10 становится A).
    • Полученный символ выводится на экран.
    • Если значение i равно 0, то цикл прерывается.
  8. После окончания цикла выводится приглашение для ввода символа.
  9. Программа завершается, возвращая 0.

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


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

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

15   голосов , оценка 3.867 из 5
Похожие ответы