Говоря математически, long имеет фиксированную длину, поэтому копирование его содержимого выполняется в режиме постоянного времени. С другой стороны, вам нужно обнулить остальные биты в наборе битов, и это вы не сможете сделать за время, меньшее линейного, относительно длины набора битов. Итак, теоретически вы не можете сделать лучше, чем O (n), где n - длина набора битов.
Я предполагаю, что с точки зрения асимптотической сложности вы можете смело предположить, что сложность конструктора такая же, как обнуление выделенной памяти.
Этот анализ, однако, имеет некоторое значение только для огромных значений n, и для меня не имеет большого смысла использовать длинный конструктор для инициализации набора битов в миллион битов. Таким образом, если размер набора битов находится в том же масштабе, что и размер long, это практически постоянное время.