|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2010, 20:00 | #1 |
Регистрация: 15.12.2010
Сообщений: 3
|
реверс битов
помогите пожалуйста, программа не корректно работает.
нужно осуществить реверс битов введенного числа вот то что мне кажется верным. почему то при любом введенном Х выдает один и тот же десятизначный ответ: Код:
Последний раз редактировалось Stilet; 15.12.2010 в 20:52. |
16.12.2010, 01:00 | #2 |
Регистрация: 08.08.2010
Сообщений: 8
|
c - это 1 в текущем бите и 0 в остальных позициях.
r=r|c; означает установить текущий бит в единицу. То есть устанавливаешь ВСЕ биты в единицу. Устанавливать надо только те биты, "противоположные" которым установлены в исходном числе. Я бы сделал так: r = 0; for(i = 0; i < a; ++i) r |= (x&(1<<i))>>i<<(a - i - 1); Кстати, в байте, вообще говоря, не 8 бит, а CHAR_BIT бит. CHAR_BIT - символическая константа, лежащая в хедере stdint.h |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сдвиг битов | XOKS | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 08.11.2010 18:11 |
реверс строки | An123 | Помощь студентам | 2 | 04.02.2010 08:49 |
Реверс 2 | grimm_jow | Общие вопросы C/C++ | 5 | 31.01.2010 03:41 |
Реверс четверок | Ivaine | Помощь студентам | 1 | 29.12.2008 18:22 |
Перестановка битов. | RegentM | Общие вопросы Delphi | 3 | 05.11.2007 17:23 |