Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить разряды установленных единиц? / 23 сообщений из 23, страница 1 из 1
05.02.2021, 22:34
    #40042395
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Как получить разряды установленных единиц?

Например:

00011000 должно дать 45
00011001 ------- 458

Спасибо.
...
Рейтинг: 0 / 0
06.02.2021, 00:03
    #40042431
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
написать функцию
myfunc (str_bit)
otvet ="";
for i=1 to 99

if Позиция(str_bit,i)=1 then
otvet = otvet + " "+STR(i)
endif
end for
...
Рейтинг: 0 / 0
06.02.2021, 07:55
    #40042467
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov,

Ого! Круто. Спасибо.
...
Рейтинг: 0 / 0
06.02.2021, 16:07
    #40042623
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov
написать функцию
myfunc (str_bit)
otvet ="";
for i=1 to 99

if Позиция(str_bit,i)=1 then
otvet = otvet + " "+STR(i)
endif
end for


??? Это mySQL?
Форум про mySQL
...
Рейтинг: 0 / 0
06.02.2021, 16:20
    #40042627
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg,

это набросок, чтобы вы подумали сами.
А то что форум MySQL - я прекрасно знаю, самое главное чтобы вы не забивали его простынями с Перлом

Поробнее здесь
...
Рейтинг: 0 / 0
06.02.2021, 16:39
    #40042631
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov,

Набросок чего?
1. Я ожидал что есть функция mySQL.
2. Я ожидал решение на mySQL - это форум mySQL

Всё. Не реагирую ни на одно ваше сообщение вообще.
...
Рейтинг: 0 / 0
06.02.2021, 16:48
    #40042635
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg,

Студентам, желающим помощи

вы не умеете задавать вопросы
miltorg00011000 должно дать 45
00011001 ------- 45800011000 - строка, двоичное число, или картинка?
...
Рейтинг: 0 / 0
06.02.2021, 16:49
    #40042636
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg,

авторЯ ожидал решение на mySQL покажите ваши попытки,
вы в каждом топике ждете пока сделают за вас.
...
Рейтинг: 0 / 0
06.02.2021, 23:06
    #40042730
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg
Я ожидал что есть функция mySQL.
Напрасно - в реальных задачах востребованность такой функции нулевая. Если, конечно, есть под рукой что-то ещё, кроме совы и глобуса.

miltorg
Я ожидал решение на mySQL - это форум mySQL
Создайте таблицу, напрямую связывающую байт и требуемый список единичных битов, и используйте её как источник данных для трансляции. Ничего лучше на уровне СУБД нет и быть не может. А попытка развлекаться с битовыми операторами... ну дурь она дурь и есть.
...
Рейтинг: 0 / 0
07.02.2021, 14:24
    #40042802
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Akina,

мне нужно получить вхождения одной строки в другую:

22261538

Там люди на 10 страницах пишут что эту задачу можно решить только "развлекаясь с битовыми операциями"
...
Рейтинг: 0 / 0
07.02.2021, 18:15
    #40042875
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg
мне нужно получить вхождения одной строки в другую:

А что Вы спрашиваете?
miltorg
Как получить разряды установленных единиц?

Вот то есть ничего общего...
...
Рейтинг: 0 / 0
07.02.2021, 19:11
    #40042897
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg
00011000 должно дать 45
00011001 ------- 458

ты уверен в порядке бит?
...
Рейтинг: 0 / 0
07.02.2021, 19:16
    #40042898
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
вадя,

это неявное преобразование. связано с топиком рядом.
позиции слева направо.
Строка 01010101 не битовая в полном смысле
...
Рейтинг: 0 / 0
07.02.2021, 20:29
    #40042910
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov,

это я в куресе....


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
SET @f = '3 8 9 11 16 28 30 31 35 37 40 43 48 53 54 58 59 60 61 68';

SELECT
  @w :=
  1 << SUBSTRING_INDEX (@f, ' ', 1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 2), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 3), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 4), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 5), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 6), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 7), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 8), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 9), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 10), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 11), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 12), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 13), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 14), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 15), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 16), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 17), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 18), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 19), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 20), ' ', -1) AS x;



SELECT
  EXPORT_SET(@w, 1, 0, '') AS d;

SELECT
  MAKE_SET(@w, '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30');


первый селект
4350768785909680904
второй
0001000011010000100000000000101100010100100100001000011000111100
третий
4,9,10,12,18,30

доделать до конца лень
вот это '1', '2', '3', '4', '5', '6', '7', '8'
может надо заменить на обратный порядок

решение в лоб, может кто оптимизирует....
и проверит..
ошибка не исключена
...
Рейтинг: 0 / 0
07.02.2021, 20:47
    #40042913
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
вадя,

медвежья услуга автору, он ничего не хочет делать сам,
да и сложный алгоритм какой-то
...
Рейтинг: 0 / 0
07.02.2021, 20:55
    #40042916
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov,

чисто из спортивного интереса
...
Рейтинг: 0 / 0
07.02.2021, 21:00
    #40042917
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
вадя,

да это понятно, в соседнем топике все из спортивного интереса ждут чем закончится...
...
Рейтинг: 0 / 0
07.02.2021, 21:08
    #40042920
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Alex_Ustinov,



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
SET @f = '3 8 9 11 16 28 30 31 35 37 40 43 48 53 54 58 59 60 61 68';

SELECT
  @w :=
  1 << SUBSTRING_INDEX (@f, ' ', 1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 2), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 3), ' ', -1) |
  1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 4), ' ', -1)   AS x;
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 5), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 6), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 7), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 8), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 9), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 10), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 11), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 12), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 13), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 14), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 15), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 16), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 17), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 18), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 19), ' ', -1) |
--   1 << SUBSTRING_INDEX (SUBSTRING_INDEX (@f, ' ', 20), ' ', -1) AS x;


     set @w :=@w/2;
SELECT
  EXPORT_SET(@w, 1, 0, '') AS d;

SELECT
  MAKE_SET(@w, '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16','17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30');


результат
3,8,9,11
...
Рейтинг: 0 / 0
08.02.2021, 14:48
    #40043302
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
Помоги себе сам:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE FUNCTION stpSovp (u1 INT)
RETURNS varchar(50)
 
BEGIN
 
   DECLARE u3 INT;
   DECLARE u4 varchar(50) DEFAULT NULL;
   DECLARE u5 INT DEFAULT 0;
   DECLARE i INT DEFAULT 256;

     WHILE i>0 DO
       SET u5 = u5+1;
       SET u3 =  u1 & i;
       IF (u3>0) THEN SET u4=CONCAT_WS(',',u4, u5);
       end IF;
       

      SET i=i >> 1;
     END WHILE;

RETURN u4;
 
END; 

SELECT stpSovp (b'000011000');
...
Рейтинг: 0 / 0
08.02.2021, 14:54
    #40043307
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg,

Считает и выводит разряды справа начиная с 9 разряда
...
Рейтинг: 0 / 0
08.02.2021, 15:03
    #40043313
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg
Код: sql
1.
CREATE FUNCTION

И это в рамках решения задачи, которая и так выполняется хрен знает сколько времени? смешно...
...
Рейтинг: 0 / 0
08.02.2021, 15:12
    #40043318
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
miltorg
miltorg,

Считает и выводит разряды справа начиная с 9 разряда
делается одной командой MAKE_SET
...
Рейтинг: 0 / 0
09.02.2021, 13:32
    #40043650
miltorg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить разряды установленных единиц?
вадя,

Ух ты! Круто. Спасибо вам большое за MAKE_SET

Это вроде как прям то что нужно.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить разряды установленных единиц? / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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