Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 8

Побитовый сдвиг и ошибка "Невозможно применить оператор << к переменным тип ulong ulong"

27.04.2011, 23:25. Показов 4815. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу обычную программную реализацию ГОСТ Р34.11
Нужна операция побитового сдвига. Выглядит примерно так:

C#
1
2
3
4
5
6
7
8
9
unsafe  ulong ROL(ulong rol, ulong n)
    {
        ulong  bitsize, hi;
                
            bitsize = sizeof(ulong) * 8;
            hi = (rol >> (bitsize - n)) & ((rol << n) - 1);
            return (rol << n) | hi;
        
    }
Пишет, что невозможно применить оператор << к переменным тип ulong ulong. Облазил MSDN. Написано, что к таким типам применяется нормально. Подскажите в чем дело
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2011, 23:25
Ответы с готовыми решениями:

Для полей ulong,double,ulong,long организовать перегрузку функций +,-,true,false,%
Нужно посчитать сумму, разность 4-х аргументов разных типов, проверить равенство(сумма&gt;введенного числа) и вывести остаток от деления...

Тип ulong для dataGrid
Моя программа работает с большими числами. Использую тип ulong Однако dataGrid не хочет работать с этим и progressbar тоже. for...

Enum сложные вводные константы перечислений. Неявное преобразование типа "ulong" в "int" невозможно
в плюсах и делфи прекрасно работает следующее определение для enum #define CNST_ISERROR_OFBLOCKERS 0x81000000 #define...

7
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
27.04.2011, 23:38
C#
1
2
3
4
5
6
7
8
9
unsafe ulong ROL(ulong rol, ulong n)
{
    ulong bitsize, hi;
 
    bitsize = sizeof(ulong) * 8;
    hi = (rol >> (int)(bitsize - n)) & ((rol << (int)n) - 1);
    return (rol << (int)n) | hi;
 
}
0
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 8
27.04.2011, 23:48
Не, до этого так и было, точнее переменные были int. Писал, что невозможно применить данную операцию для ulong и int

Добавлено через 2 минуты
И ещё начал писать, что & неприменим для ulong и unt
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
28.04.2011, 00:03
Но сейчас ведь код, который я выложил работает.
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
28.04.2011, 01:04
В RC6 использовал следующие функции для сдвигов:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        public const int W = 32;
 
        // Функция сдвига вправо
        public UInt32 RightShift(UInt32 z_value, int z_shift)
        {
            return ((z_value >> z_shift) | (z_value << (W - z_shift)));
        }
 
        // Функция сдвига влево
        public UInt32 LeftShift(UInt32 z_value, int z_shift)
        {
            return ((z_value << z_shift) | (z_value >> (W - z_shift)));
        }
0
2 / 2 / 1
Регистрация: 17.11.2013
Сообщений: 72
19.01.2014, 10:43
мне бы узнать, что такое ulong
0
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
19.01.2014, 10:52
http://msdn.microsoft.com/ru-r... 873t4.aspx
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.01.2014, 11:02
C#
1
2
3
4
5
6
7
8
9
10
ulong ROL(ulong rol, int n)
{
    int bitsize;
    ulong hi;
 
    bitsize = sizeof(ulong) * 8;
    hi = (rol >> (bitsize - n)) & ((rol << n) - 1);
    return (rol << n) | hi;
 
}
Не надо использовать типы данных там, где они не нужны.
Нет абсолютно никаких причин переменным n и bitsize иметь тип ulong.

И главный вопрос: а почему метод unsafe?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.01.2014, 11:02
Помогаю со студенческими работами здесь

QDataStream и ulong
Есть код: QFile file(fname); file.open(QIODevice::WriteOnly); QDataStream ds(&amp;file); ulong num = getIt(); ds &lt;&lt; num; ...

Как пользоваться Ulong?
В общем, есть API для создания чата(https://vknet.github.io/vk/messages/createChat/), Синтаксис public long...

Несколько uchar и ulong
Известно, что uchar - 1 байт, ulong - 8 байт. Возможен ли некий алгоритм сохранения нескольких uchar в один ulong с последующей...

Преобразование ulong в Sqlite integer
Вечер добрый! Вопрос не относится к ADO.NET, однако связан с работой с БД Sqlite с EntityFramework Возникла проблема, связанная с...

Не могу найти декларацию ULONG
Что за тип такой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru