2353 / 1771 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
|
|
1 | |
Сканирование с младшого до старшего бита на наличие 108.01.2013, 21:51. Показов 1801. Ответов 13
Метки нет Все метки)
(
Привет всем. Нужна помощь. Есть задание: Задано число А. Мне нужно сделать сканирование с младшого до старшего бита на наличие 1. А тепер проблема - подскажите пжл, как определить конец числа, или подсчитать к-во битов в числе?
0
|
|
08.01.2013, 21:51 | |
Ответы с готовыми решениями:
13
Позиция старшего значащего бита
Наличие бита в байте |
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
09.01.2013, 00:59 | 2 |
Почитай про size_of(вроде так пишеться или слитно, давно не пользовался), это размер в битах(или байтах, если байтах, то просто умножить на 8) если не ошибаюсь.
1
|
Каратель
![]() |
||||||
09.01.2013, 01:20 | 3 | |||||
1
|
2353 / 1771 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
|
|
09.01.2013, 01:33 [ТС] | 4 |
ничего не понял...
можете об'яснить поподробней? Добавлено через 1 минуту я вкурсе о этой ф-ии, она возвращает к-во байт. Попробую сделать, но не знаю ли получится то что надо.
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
|||||||||||
09.01.2013, 01:44 | 5 | ||||||||||
нашли а дальше что?
ищем первую единицу и отваливаем
1
|
2353 / 1771 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
|
|
09.01.2013, 01:50 [ТС] | 6 |
полное задание:
1.1 Побитовое сканирование в прямом (от младших к старшим) направлении regA в поисках бита с 1, возвращает номер позиции в destReg. Если 1 найдено ZF = 1, иначе ZF = 0 1.2 Побитовое сканирование в обратном направлении (от старших к младшим) regA в поисках бита с 1, возвращает номер позиции в destReg. Если 1 найдено ZF = 1, иначе ZF = 0 Это я делаю регистр признаки 0 - zero flax. Проблема в том, что надо вертеть число слева направо и справа налево... П.С. нужно было сразу давать полное задание, чтото протупил...
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
||||||
09.01.2013, 01:59 | 7 | |||||
Так все же элементарно
sizeof - и ты знаешь, сколько бит в числе циклом пробегаешься по всем, с помощью побитового сдвига и битового "и"
1
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
||||||
09.01.2013, 01:59 | 8 | |||||
Это я тебе сделал
1
|
2353 / 1771 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
|
|
09.01.2013, 02:04 [ТС] | 9 |
спасибо, все понял, потом посмотрим что на практике будет...
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
||||||
09.01.2013, 18:24 | 10 | |||||
ValeryS, кхм. Что, говорите, вы курите?
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
||||||
09.01.2013, 19:23 | 11 | |||||
ну и описался немного
![]() там кстати и i нельзя в цикле объявлять вот рабочий цикл
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
||||||
09.01.2013, 19:38 | 13 | |||||
Croessmah,
ты прав, просто не проверял сейчас проверил да сдвиг на 32 бита не есть гут( у меня по крайней мере идет заворот) 1<<32 =1 циклический сдвиг однако ![]() вот так правильно
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
|
09.01.2013, 19:46 | 14 |
Kgfq, у тебя тоже не все слава богу
число то задом наперед выводится ![]()
0
|
09.01.2013, 19:46 | |
09.01.2013, 19:46 | |
Помогаю со студенческими работами здесь
14
Функция, которая для заданного числа рассчитывает позицию первого слева (старшего) нулевого бита числа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |