Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2008, 13:19   #1
Bezumie
Новичок
Джуниор
 
Регистрация: 19.12.2008
Сообщений: 2
Печаль Функция на встроенном ассемблере

Функция на встроенном ассемблере: Число единиц в двоичном представлении символа(букв и чисел)
Основная задача: По массиву X из 5 символов построить массив Z такой, что Z(i)= числу единиц в двоичном представлении X(i)

Разработать с С++ приложение с графическим интерфейсом (меню, панель управления, строка состояния) для решения данной задачи, в котором должна использоваться функция, написанная на встроенном ассемблере.

Помогите пожалуйста!!!((((
Bezumie вне форума Ответить с цитированием
Старый 21.12.2008, 13:57   #2
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Bezumie Посмотреть сообщение
Функция на встроенном ассемблере: Число единиц в двоичном представлении символа(букв и чисел)
Основная задача: По массиву X из 5 символов построить массив Z такой, что Z(i)= числу единиц в двоичном представлении X(i)
Для подсчета бит рекомендую использовать следующий линейный алгоритм:
Код:
int count_bits(unsigned x)
{
    __asm
    {
        mov	ecx, x 
        mov	eax, ecx
        shr	eax, 1
        and	eax, 0x55555555
        sub	ecx, eax

        mov	eax, ecx
        shr	eax, 2
        and	ecx, 0x33333333
        and	eax, 0x33333333
        add	eax, ecx

        mov	ecx, eax
        shr	ecx, 4
        add	ecx, eax
        and	ecx, 0x0f0f0f0f

        mov	edx, ecx
        shr	edx, 8
        add	ecx, edx

        mov	eax, ecx
        shr	eax, 16
        add	eax, ecx

        and	eax, 0x3f
    }
}
Не упусти возможность ввести препода в полный ступор. Он никогда не сможет понять, почему этот код работает. Он потеряет покой и сон. Он будет молить тебя объяснить этот код. Но ты не сдавайся! Требуй взамен автомата на экзамене - не меньше!
como вне форума Ответить с цитированием
Старый 21.12.2008, 21:42   #3
Bezumie
Новичок
Джуниор
 
Регистрация: 19.12.2008
Сообщений: 2
По умолчанию

Попробовала, работает, только с буквами не получается. А нужно чтоб и буквы и числа можно было
Bezumie вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50