циклический сдвиг

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Создатель
Постоялец
Постоялец
 
Сообщения: 422
Зарегистрирован: 21.04.2004 (Ср) 3:32
Откуда: Новосибирск

циклический сдвиг

Сообщение Создатель » 22.09.2005 (Чт) 17:34

Есть ли в нете циклический сдвиг в принципе? Или как это реализовать?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.09.2005 (Чт) 19:54

Если ты имеешь ввиду команды асемблера ROR и ROL, то вот код:

Код: Выделить всё
Public Sub ROL(ByRef b As Byte)
        'Циклический сдвиг влево
        If (b And &H80) <> 0 Then
            b = (b << 1) Or 1
        Else
            b = b << 1
        End If
    End Sub

    Public Sub ROR(ByRef b As Byte)
        'Циклический сдвиг вправо
        If (b And 1) <> 0 Then
            b = (b >> 1) Or &H80
        Else
            b = b >> 1
        End If

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.09.2005 (Чт) 21:49

О! Наконец-то, кто-нибудь объясните мне, зачем нужны циклические сдвиги.
Я всегда думал, что это для совместимости с какими-нибудь давно забытыми устройствами, типа AAA или INTO.
Изображение

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.09.2005 (Чт) 22:44

Эти команды поддерживаются всеми современными процессорами и живут со времен Intel 8086. Нужны для того же, для чего и Xor, Or, And, итд. Простыми словами - для оперирования битами. Циклический сдвиг влево - крутит биты по кругу, при этом старший бит становится младшим

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.09.2005 (Чт) 23:28

Nord777, я знаю что они делают и даже с какого времени они живут.
Мне очень интересно, зачем они нужны.


ЗЫ насчёт "всеми современными процессорами": первым делом посмотрел в ARM, там циклических сдвигов нет :-P
Вторым делом посмотрел в Alpha, там циклических сдвигов нет :-P :-P
Третьим делом посмотрел в MIPS, там циклических сдвигов нет :-P :-P :-P
Ну и где же ещё, кроме x86, есть циклические сдвиги? :?: :?:
Изображение

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 23.09.2005 (Пт) 11:57

Мда. Какой вопрос - такой и ответ :wink:
Так и написал бы: "To Создатель: Мне очень интересно зачем они тебе понадобились"

ЗЫ насчет "всеми современными процессорами": Когда я опустил "(x86)" промелькнула мысль что обязательно придерутся к словам, что и произошло :D

Создатель
Постоялец
Постоялец
 
Сообщения: 422
Зарегистрирован: 21.04.2004 (Ср) 3:32
Откуда: Новосибирск

Сообщение Создатель » 23.09.2005 (Пт) 14:19

О спасибо! Весь прикол в том, что они не мне понадобились, брат попросил узнать, он там что-то с шифрованием задумал делать. Ну вот этот код я ему собственно и предоставлю.
Да и самому стало интересно, а то в сях это видел, а здесь даже не знаю о существовании такого.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.09.2005 (Пт) 22:12

Nord777 писал(а):ЗЫ насчет "всеми современными процессорами": Когда я опустил "(x86)" промелькнула мысль что обязательно придерутся к словам, что и произошло :D

Ну дык, x86 - это не все "современные процессоры", а только одна архитектура из многих, причём не современная, а очень даже древняя.

Поясни пожалуйста, какой смысл ты вкладывал во вразу "всеми современными процессорами"? Особенно, при чём тут слово "современными"?

2Создатель: в Си циклических сдвигов тоже нету, только обычные. Чего-то ты не то там видел.
Изображение

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 23.09.2005 (Пт) 23:55

И тут Остапа понесло...
Ну всех раскритиковал и изобличил!!!
tyomitch, я ничего не буду пояснять, это уже начинает напоминать словесную битву. Неблагодарное это занятие. И не тот форум.
Если ты обиделся на то, что я подумал будто бы ты не знаешь о сдвигах, то прошу меня великодушно простить, не со зла я.
Мир, Дружба, Жевачка? :lol:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.09.2005 (Сб) 1:31

Nord777 писал(а):Если ты обиделся на то, что я подумал будто бы ты не знаешь о сдвигах, то прошу меня великодушно простить, не со зла я.

Нет, я обиделся за Современные Процессоры, в которых якобы столько же мусора, сколько в музейном экспонате 25-летней давности (x86).
Вон, другие выходят из себя, когда при них хвалят IE (см. недавно потёртую тему про Оперу), а я выхожу из себя, когда хвалят x86 :twisted:
Всё, буду теперь спокойнее :-)
Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 84

    TopList