Битовая сумма id
Всем привет.
Подключаюсь к одной апишке и есть такая тема - есть пост запрос с формы - в форме есть мультиселект - Тип кузова - отправлять нужно id кузовов - но не в массиве а битовую сумму id кузовов и тип int64 Что это значит и зачем так сделано, почему не массив? |
Цитата:
Цитата:
PS. Я могу и ошибаться, но скорее вы не так трактуете задачу и речь идет не о сумме бит, а побитовом ИЛИ, то есть сложении. При этом значения списка, это не id, а значения поля типа SET, которые представляют бит с шагом степени 2, то есть 1, 2, 4, 8, .... К примеру если будут выбраны 2 и 3 опции, то результат будет: 0010 0100 ------ 0110 = 6 что и требуется для записи в базу. |
laimas,
id - обычное число - например 1, 2, 54, 63 и даже такие 131072 - это чисто их внутренний учет айдишек. Вот несколько таких значений нужно отправлять, или одно значение если выбран один тип кузова. |
Цитата:
Например, в базе будет так 1 - Первый 2 - Второй ...... Также хранится и ENUM, но в нем можно выбрать одно значение из множества, а в SET многое из множества, поэтому и сумма. Сделайте побитое ИЛИ над значениями выбранных опций, получится то, что требуется. |
если там тип int то значит сложить их вместе
|
Цитата:
var sum = [...document.querySelectorAll('[selected]')].reduce((a, b) => a | b.value, 0) нежели var sum = [...document.querySelectorAll('[selected]')].reduce((a, b) => a += +b.value, 0) |
Vlasenko Fedor,
int64 - и в описании просто написано без примера - Битовая сумма id кузовов а сложить вместе тоже есть такое поле - тип загрузки вот там тип int Вот его описание из документации Битовая сумма id типов загрузки. Например: только "Верхняя" будет иметь значение 1; "Верхняя", "Боковая" и "Со снятием стоек" имеют значение 67 (1 + 2 + 64) Вот там айдишки идут - 1 2 4 8 16 32 64 128 и т.д |
Впрочем в типе кузова то же самое, сразу не обратил внимание - они просто перемешанные.
|
Цитата:
http://www.mysql.ru/docs/man/SET.html А битовая сумма, это сумма бит в числе, есть такое понятие, посмотреть можно например тут https://neerc.ifmo.ru/wiki/index.php...ераци - Подсчет количества единичных битов |
Цитата:
|
Часовой пояс GMT +3, время: 23:53. |