Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/32: Рейтинг темы: голосов - 32, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 14
1

Количество единичных битов

23.03.2010, 19:21. Показов 6698. Ответов 9
Метки нет (Все метки)

Название Размерность Тип
D 16 вход
C 5 выход
На входе D двоичное число. Спроектировать устройство, подающее на выход C количество единичных бит во входном числе.

Пример:
D: 1000111011011101b
C: 01010b
Очень лагодарна заранее за решение
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2010, 19:21
Ответы с готовыми решениями:

Написать функцию, которая для заданного x посчитает количество единичных битов в этом числе.
Написать функцию, которая для заданного x посчитает количество единичных битов в этом числе....

Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе
Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе,...

Функции. побитовые операции. Написать функцию, которая для заданного целого числа Х вычисляет количество единичных битов в этом числе
Здравствуйте, уважаемые мастера программирования. Нуждаюсь в вашей помощи. Написать функцию,...

Подсчитать количество единичных бит в числе типа double
Как это можно сделать? С целой частью понятно, а с дробной нет. double u; u=555.667; long...

9
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
23.03.2010, 19:22 2
устройство спроектировать?
0
2342 / 498 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
23.03.2010, 19:36 3
схему из логических элементов, что-ли?
0
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 14
24.03.2010, 15:34  [ТС] 4
Просто объясните мне, как посчитать количество единичных битов в двоичном числе
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11023 / 6977 / 1648
Регистрация: 25.07.2009
Сообщений: 12,723
24.03.2010, 16:02 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <limits.h>
#include <windows.h>
 
/* возвращает количество установленных битов */   
size_t bitsCount(unsigned long val){
    size_t i, cnt;
    for ( i = cnt = 0; i < CHAR_BIT * sizeof(long); ++i )
        if ( val & 1 << i )
            ++cnt;
    return cnt;
}
 
/* возвращает число в двоичном виде как строку */
char *bin(unsigned long val){
    static char buf[CHAR_BIT * sizeof(long) + 1] = { 0 };
    char *p;
    int i;
    for ( p = buf, i = CHAR_BIT * sizeof(long) - 1; i >= 0; --i )
        *p++ = ( val >> i & 1 ) + '0';
    return buf;
}
 
int main(void){
    unsigned long val;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    while ( 1 ){
        printf("Число (0 - выход): ");
        if ( scanf("%lu", &val) != 1 || !val )
            break;
        printf("В двоичном виде: %s\n", bin(val));
        printf("Установленных битов: %d\n", bitsCount(val));
    }
    return 0;
}
0
Эксперт С++
5026 / 2605 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
24.03.2010, 16:20 6
для unsigned int
C++
1
2
3
4
5
6
7
8
9
10
// Подсчет еденичных битов в слове
int wpop(WORD32 X)
{
    X = X - ((X >> 1) & 0x55555555);
    X = (X & 0x33333333) + ((X >> 2) & 0x33333333);
    X = (X + (X >> 4)) & 0x0F0F0F0F;
    X = X + (X >> 8);
    X = X + (X >> 16);
    return (X & 0x0000003F);
}
1
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
25.03.2010, 12:35 7
А откуда эта формула ?
0
2342 / 498 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
25.03.2010, 13:57 8
Цитата Сообщение от odip Посмотреть сообщение
А откуда эта формула ?
из основ электроники, вероятно.
я не зря спрашивал, уж не логическую ли схему надо автору.
в шифраторах как раз такие алгоритмы и применяются.
там и еще интереснее есть, для генерации контрольных битов, позволяющие находит и восстанавливать единичные ошибки.
0
Эксперт С++
5026 / 2605 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
25.03.2010, 15:12 9
Цитата Сообщение от Patch Посмотреть сообщение
позволяющие находит и восстанавливать единичные ошибки.
Это называется помехоустойчивое кодирование =)
0
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 14
25.03.2010, 19:13  [ТС] 10
СПАСИБО!!!!!!!!!!!!!!!!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2010, 19:13

Подсчетать количество единичных разрядов на нечетных местах в двоичном представлении числа
4. Записать программу для подсчета количества единичных разрядов на нечетных местах в двоичном...

Задача Robot. Найти количество единичных квадратов, на которых робот побывал более одного раза
Задача Robot. Робот находится на плоскости, которая разбита на единичные квадраты. Робот может...

Определить разрядность целого числа, использовать битовый сдвиг вправо.Подсчитать количество единичных разрядов,
Определить разрядность целого числа, использовать битовый сдвиг вправо. Подсчитать количество...

Количество нулевых битов
in1 4бита in2 4бита out1 1бит out2 1бит out3 1бит На входе два двоичных числа:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.