Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# преобразование типов & побитовое и / 11 сообщений из 11, страница 1 из 1
10.01.2014, 19:00
    #38522439
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
дано - код на Oracle , нужно его мигрировать на MsSQL. явно преобразовать не получается , поэтому задумал написать хранимку на С#.
Опреция простая , но как к ней подойти .. ) (помогите пж с направлением ) )


Код: plsql
1.
select  bitand(60129543037, to_number('00000000ffffffff','XXXXXXXXXXXXXXXX')) as C1id from dual  
...
Рейтинг: 0 / 0
10.01.2014, 20:04
    #38522520
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
это остаток от деления 60129543037 на 4294967296, если я правильно понял.
остаток от деления можно в MsSQL получить?
...
Рейтинг: 0 / 0
10.01.2014, 20:21
    #38522529
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
%
...
Рейтинг: 0 / 0
11.01.2014, 13:35
    #38522901
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Нашел в этой статье вдохновение )

http://professorweb.ru/my/csharp/charp_theory/level12/12_13.php
...
Рейтинг: 0 / 0
11.01.2014, 16:42
    #38522990
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Яростный Мечэто остаток от деления 60129543037 на 4294967296, если я правильно понял.
Это битовый AND (как видно из названия функции) над 60129543037 и результатом приведения к числовому типу шестнадцатеричного значения 00000000ffffffff.
essbase.ruНашел в этой статье вдохновение )
Дурью маетесь. Ваша задача решается средствами самого MSSQL, без всяких CLR:
Код: sql
1.
select convert(bigint,60129543037) & convert(bigint,convert(binary(8),'00000000ffffffff',2))
...
Рейтинг: 0 / 0
11.01.2014, 16:58
    #38523003
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Сон Веры Павловны,


Вот спасибо )


ЕР
...
Рейтинг: 0 / 0
12.01.2014, 02:58
    #38523312
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Сон Веры ПавловныЯростный Мечэто остаток от деления 60129543037 на 4294967296, если я правильно понял.
Это битовый AND (как видно из названия функции) над 60129543037 и результатом приведения к числовому типу шестнадцатеричного значения 00000000ffffffff.да.
и он эквивалентен остатку от деления 60129543037 на 4294967296
...
Рейтинг: 0 / 0
12.01.2014, 08:16
    #38523349
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Яростный Мечда.
и он эквивалентен остатку от деления 60129543037 на 4294967296
Код: sql
1.
2.
3.
select
  convert(bigint,60129543037) & convert(bigint,convert(binary(8),'00000000ffffffff',2)),
  convert(bigint,60129543037) % convert(bigint,convert(binary(8),'00000000ffffffff',2))


Код: plaintext
1.
2.
3.
-------------------- --------------------
893                  907

(1 row(s) affected)
...
Рейтинг: 0 / 0
12.01.2014, 12:05
    #38523394
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
делить нужно на '0000000100000000'
...
Рейтинг: 0 / 0
12.01.2014, 12:31
    #38523402
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
Изопропил,

Во всем это вижу пласт знаний , который я благополучно забыл )

Поэтому решил так как понятнее )
- CLR с вычленением части показателя

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
            Int64 intValue = 60129543037;
            byte[] intBytes = BitConverter.GetBytes(intValue);
            byte[] intBytes2 = new byte[4] ;
            intBytes2[0] = intBytes[0];
            intBytes2[1] = intBytes[1];
            intBytes2[2] = intBytes[2];
            intBytes2[3] = intBytes[3];

            Console.WriteLine("\n");
            Console.WriteLine(BitConverter.ToInt32(intBytes2,0));
            intBytes2[0] = intBytes[4];
            intBytes2[1] = intBytes[5];
            intBytes2[2] = intBytes[6];
            intBytes2[3] = intBytes[7];
            Console.WriteLine("\n");
            Console.WriteLine(BitConverter.ToInt32(intBytes2, 0));
...
Рейтинг: 0 / 0
12.01.2014, 12:51
    #38523413
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c# преобразование типов & побитовое и
essbase.ru,

даже если и на шарпе
Код: c#
1.
60129543037L & 0xFFFFFFFFL

достаточно

P.S. без нужды на SQL сервер не надо тащить инородные Java,C#, C/C++
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# преобразование типов & побитовое и / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]