1 | ||||||
Определить значение старшего бита в четверном слове03.09.2019, 11:28. Показов 2297. Ответов 8
Имеется какое-либо четверное слово:
X64X63X62X61X60X59X58X57 X56X55X54X53X52X51X50X49 X48X47X46X45X44X43X42X41 X40X39X38X37X36X35X34X33 X32X31X30X29X28X27X26X25 X24X23X22X21X20X19X18X17 X16X15X14X13X12X11X10X9 X8X7X6X5X4X3X2X1 Нужно узнать, какой бит находится в позиции X64. Пока придумал такой способ.
0
|
|
03.09.2019, 11:28 | |
Ответы с готовыми решениями:
8
Позиция старшего значащего бита Сканирование с младшого до старшего бита на наличие 1
|
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
|
||||||
03.09.2019, 21:53 | 4 | |||||
![]() Решение
еще можно использовать битовый сдвиг
2
|
03.09.2019, 23:01 | 6 |
А если в позиции Х51?
Результат сдвига не бит, а число, например ii >> 50 даст значение 8191. Соответственно для отрицательных значений ii >> 63 всегда будет давать число -1, а для неотрицательных – 0.
0
|
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
|
|
03.09.2019, 23:38 | 9 |
У ТС используется UInt64 (как и в моем примере) - откуда отрицательные?
Если уж отступить от темы и искать произвольный бит, то я бы сдвигал все также вправо, а после применял "И" с единицей
1
|
03.09.2019, 23:38 | |
03.09.2019, 23:38 | |
Помогаю со студенческими работами здесь
9
Функция, которая для заданного числа рассчитывает позицию первого слева (старшего) нулевого бита числа как взять значение определенного бита из байта? и как организовать такое в цикля для каждого бита? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |