Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.159.150] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток) Народ,помогите разобраться с такой задачей (даже не представляю как это должно выглядеть ):
Дан массив из 10 байт. Посчитать кол-во байт с числом единиц в байте равным 3. |
Сообщ.
#2
,
|
|
|
Примерно так:
char a[10]="proba PeRA"; int count=0; for( int i=0; i<10; i++) // символы анализируем { int bits=0; // сколько единичек for( int b=0; b<8; b++) // все биты проверяем if( a[i]&(1<<b) ) bits++; // о, единичка! if( bits==3 ) count++; // 3 штуки -> нужный символ! } // выдать count Добавлено Есть, правда, инструкция popcnt, считающая сколько уже единичек в байте, но... вас наверняка просят без оной сделать. |
Сообщ.
#3
,
|
|
|
С переводом то и все проблемы
|
Сообщ.
#4
,
|
|
|
Цитата noob322 @ Набросайте что получилось, там и посмотрим где ошибки. С переводом то и все проблемы |
Сообщ.
#5
,
|
|
|
mov si,[array] cld xor ax,ax xor dx,dx mov cx, 10 loop_array: push cx lodsb mov cx,8 xor ah,ah loop_bits: rcr al adc ah, 0 loop loop_bits cmp ah,3 jne next_byte inc dx next_byte: pop cx loop loop_array mov ax,dx ret |
Сообщ.
#6
,
|
|
|
А где у вас массив задается?
|
Сообщ.
#7
,
|
|
|
Цитата noob322 @ Посчитать кол-во байт с числом единиц в байте равным 3. Делаешь массив из 256 элементов помечаешь нужные. Читываешь байт и проверяешь соответствующий элемент в массиве, если помечен - значит этот байт подходящий А так нормальное решение предложил Akina. |
Сообщ.
#8
,
|
|
|
Цитата noob322 @ где у вас массив задается? Вот мне больше делать нечего... ты вопрос формулируешь как? Цитата noob322 @ Дан массив из 10 байт. Посчитать кол-во байт с числом единиц в байте равным 3. Массив уже дан, надо только посчитать. Где и как - не мои проблемы. Разбирайся и цепляйся к массиву, который "дан". |
Сообщ.
#9
,
|
|
|
Прост чтобы проверить данное решение,надо ж с конкретным массивом работать
|
Сообщ.
#10
,
|
|
|
Цитата noob322 @ чтобы проверить данное решение,надо ж с конкретным массивом работать Ну так сгенери тестовый массив. Хоть статический в коде. Какая нафиг разница, откуда он возьмётся? Заодно будешь правильный ответ знать. |
Сообщ.
#11
,
|
|
|
mov si,[array] вот тут ошибка при компиляции,не подскажете из-за чего?
|
Сообщ.
#12
,
|
|
|
offtop Цитата noob322 @ не подскажете из-за чего? На этом месте должно было быть написано "угадайте, какая"... |