Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> циклический сдвиг битов влево(вправо) 
:(
    Опции темы
AlexiZ
Дата 25.2.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Здравствуйте,
Как реализовать на C# циклический битовый сдвиг?
Например, циклический сдвиг влево на 3 бита:  1011100 -> 1100101

Если делать обычный сдвиг, то увеличивается длина числа (при сдвиге влево) или теряются биты и правом сдвиге.

Заранее благодарен за ответы
PM MAIL   Вверх
AlexiZ
Дата 25.2.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Вроде сам разобрался.
Здесь есть неплохое обсуждение - stackoverflow
Но вариант
Код

private UInt32 RotateLeft(UInt32 x, Byte n)
{
      return (UInt32)(((x) << (n)) | ((x) >> (32 - (n))));
}


на мой взгляд неверен.

и вот, что я понаписал - 

Код

static UInt32 RotateLeft(UInt32 value, int count)
{
      return (value >> count) + ( ((value << (32 - count)) >> (32 - count)) << count );
}


с этой функцией корректно выполнилось действие 1011100 -> 1100101
PM MAIL   Вверх
LEX555
Дата 25.2.2010, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 7.2.2010

Репутация: нет
Всего: нет



Ну вы работаете чисто с int-овыми значениями) представление двоичной системы неплохо обсуждается здесь:
http://forum.codenet.ru/showthread.php?t=54131
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0615 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.