Посчитать количество едениц в двоичном представлении числа. Найти ошибку в коде - C (СИ)

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

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

Листинг программы
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. void main()
  6. {
  7. union
  8. {
  9. char p[4];
  10. int t;
  11. }sym;
  12. int t;
  13. printf ("input: ");
  14. scanf ("%d", &t);
  15. printf ("%d = %x",t,t);
  16. sym.t=0;
  17. scanf("%c", &sym.p[0]);
  18. int a=sym.t;
  19. char temp;
  20. temp=sym.p[0];
  21. sym.p[0]=sym.p[3];
  22. sym.p[3]=temp;
  23. printf("\hex format after operation %x",sym.p);
  24. int Bits1(); //хотела посчитать кол-во едениц в двоичном представлении числа а
  25. {
  26. unsigned char a=sym.t;
  27. int i = 0, r = 0;
  28. for(;i<8*sizeof(sym.p); i++, a>>=1)
  29. if(a & 1)
  30. r++;
  31. return r;//тут ругается тип возвращаемого значения не соотвествует типу функции
  32. }
  33. getchar();
  34. }

Решение задачи: «Посчитать количество едениц в двоичном представлении числа. Найти ошибку в коде»

textual
Листинг программы
  1. int nbits(unsigned int x)
  2. {
  3.     int n = 0;
  4.     while( x != 0 ) {
  5.         n += x & 1;
  6.         x >>= 1;
  7.     }
  8.     return n;
  9. }

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

  1. В функции nbits аргументом является unsigned int x.
  2. Переменная n инициализируется значением 0 и используется для подсчета количества единиц.
  3. В цикле while происходит проверка, не равно ли значение x нулю.
  4. В каждой итерации цикла значение x сдвигается вправо на 1 бит с помощью оператора >>.
  5. С помощью оператора & получается младший бит числа x, который затем приравнивается к 1.
  6. Значение 1 добавляется к переменной n.
  7. После завершения цикла возвращается значение переменной n.

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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