Есть ли эффективный способ удалить первый бит числа в C++/Python, если вы не знаете, насколько велика цифра или ее тип данных?Удаление первого бита
Я знаю в Python. Я могу это сделать, получив bin (n), обрезая строку на 1, а затем переработав ее в int, но мне любопытно, есть ли более «математический» способ сделать это ,
например. говорят, что число равно 6, что равно 110 в двоичном формате. Нарезать первый бит и становится 10, или 2.
Что такое «первый бит»? наиболее значимый? наименее значимый? Если вы ничего не знаете о размере номера или его формате, вы, вероятно, полностью уничтожите номер. например удалите самый сиг-фик подписанного числа, и вы просто удалили бит знака. как вы обрабатываете 8-битное число против. 16-битный номер? если это 16 бит, и вы удаляете бит 7, так как вы считали, что это 8-битное число, теперь вы полностью уничтожили это значение. –
Я не знаю, что большинство/наименее значимых средств, но я добавил пример. Я полагаю, что самый левый бит значения 1 является «наиболее значимым», самый правый бит значения 1 является «наименее» значимым – user111373
В C++ вы можете рассмотреть [операции смены битов] (http://www-numi.fnal.gov/offline_software /srt_public_context/WebDocs/Companion/cxx_crib/shift.html). – cm2