В C++. Я инициализировать BitSet до -3, как:преобразовать биты в int в C++
std::bitset<32> mybit(-3);
Есть ли благодать так, что конвертировать mybit
в -3
. Beacause у битового объекта есть только методы, такие как to_ulong
и to_string
.
В C++. Я инициализировать BitSet до -3, как:преобразовать биты в int в C++
std::bitset<32> mybit(-3);
Есть ли благодать так, что конвертировать mybit
в -3
. Beacause у битового объекта есть только методы, такие как to_ulong
и to_string
.
Используйте to_ulong
, чтобы преобразовать его в unsigned long
, а затем обычный литой, чтобы преобразовать его в int
.
int mybit_int;
mybit_int = (int)(mybit.to_ulong());
благодарим вас за подробный ответ @Barmar. – tenos
Поскольку это C++, я бы предложил использовать [static_cast
не работает, все еще выплевывая беззнаковое целое число. -3 становится 251 – FluorescentGreen5
Преобразование его в беззнаковое долго, затем отливали, что междунар. – Barmar
Как говорится в [документации] (http://en.cppreference.com/w/cpp/utility/bitset), 'std :: bitset' имеет функцию преобразования значения в ulong. Так, как говорит @Barmar, произведите это до конца. Так в чем проблема? Вы прочитали документацию или попробовали что-либо перед отправкой вопроса? – Manu343726
@Johnsyweb Он, вероятно, хочет обрабатывать отрицательные значения, как показывает его пример. – Kaidjin