|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||||||
Извлечение из целого числа определенное количество битов28.11.2019, 09:06. Показов 3293. Ответов 6
Всем добра. Необходимо написать универсальный метод, который позволит из целого без знакового (Uint32) извлечь определенный фрейм битов и преобразовать выделенный фрейм снова в целое число (Int32), в разных комбинациях?
Пример (жирным выделены фреймы, которые необходимо получить): Число = 4194967295; 1111 10100000101000011110 11111111 1111 10100000101000011110 11111111 Далее 111 1 10100000101000011110 11111111 - тут все просто value & (1 << (bitNumber)); Потом 1111 101000001010000111 10 11111111 - Метод называется GetBitFrame - Возвращает целочисленное (int) - Первый параметр - исходное число целое без знаковое(uint) - Второй параметр - размер кадра (количетво бит, которые необходимо выделить из целого числа) - Ну и параметры, например для сдвигов влево-вправо (short, int не важно). Я сделал так, но это работает не правильно.
0
|
||||||
| 28.11.2019, 09:06 | |
|
Ответы с готовыми решениями:
6
Посчитать количество единичных битов числа
Написать функцию, которая для заданого целого числа Х вычисляет количество пар (расположенных друг за другом) нулевых битов в этом числе |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||||||||||||
| 28.11.2019, 11:55 | |||||||||||||||||
Сообщение было отмечено Jman как решение
Решение
length битов значения value, начиная с shift битов от младшего.На вашем примере:
frame вправо на shift:
2
|
|||||||||||||||||
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|
| 28.11.2019, 12:44 [ТС] | |
|
Замечательный ответ! Спасибо!
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 28.11.2019, 13:16 | ||||||
|
Jman, если вам нужна выхваченная часть, но сдвинутая в начало, то вместо сдвига результата вправо в конце, лучше сдвинуть его в начале — одним сдвигом будет меньше:
1
|
||||||
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|
| 28.11.2019, 13:18 [ТС] | |
|
Мне по факту нужно число - закодированное в битовом фрейме, мне не нужно двигать в начало по идее.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 28.11.2019, 13:23 | |||
|
Хотя, если число закодировано во фрейме, то может все-таки нужно? ![]() Если где-то в середине значения закодировано число 3 (0b11), то вы хотите получить 3 (0b11) или 3221225472 (0b11000000000000000000000000000000), если оно закодировано в старших двух байтах?
0
|
|||
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||
| 28.11.2019, 13:24 [ТС] | ||
|
0
|
||
| 28.11.2019, 13:24 | |
|
Помогаю со студенческими работами здесь
7
Инверсия двух средних битов длинного целого числа Реализовать алгоритм зеркального отображения тетрад битов значения целого числа без знака Реализовать алгоритм зеркального отображения тетрад битов значения целого числа без знака
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|