powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить разряды установленных единиц?
23 сообщений из 23, страница 1 из 1
Как получить разряды установленных единиц?
    #40042395
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить разряды установленных единиц?

Например:

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

Спасибо.
...
Рейтинг: 0 / 0
Как получить разряды установленных единиц?
    #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
Как получить разряды установленных единиц?
    #40042467
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

Ого! Круто. Спасибо.
...
Рейтинг: 0 / 0
Как получить разряды установленных единиц?
    #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
Как получить разряды установленных единиц?
    #40042627
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

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

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

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

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

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

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

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

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

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

22261538

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

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

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

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

это неявное преобразование. связано с топиком рядом.
позиции слева направо.
Строка 01010101 не битовая в полном смысле
...
Рейтинг: 0 / 0
Как получить разряды установленных единиц?
    #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
Как получить разряды установленных единиц?
    #40042913
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

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

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

да это понятно, в соседнем топике все из спортивного интереса ждут чем закончится...
...
Рейтинг: 0 / 0
Как получить разряды установленных единиц?
    #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
Как получить разряды установленных единиц?
    #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
Как получить разряды установленных единиц?
    #40043307
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

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

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

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

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

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


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