Учитывая значение unsigned int x, я хочу установить n-й бит в y, а y может быть либо 0, либо 1. Возможно ли создать выражение с использованием побитовых операторов, чтобы избежать этого использование каких-либо условных утверждений? Благодарю.Установка n-го бита unsigned int
ответ
x = (x & (~(1 << n))) | (y << n)
Довольно просто. (Во-первых, снимите n
-й бит, и установить n
-й бит в 1
если y
является 1
.)
x ^= (-y^x) & (1 << n);
Это не является безусловным. OP хочет это без каких-либо условий. – Eun
Мне это известно, но мне интересно, можно ли включить y в выражение, чтобы оба случая (с y равным 0 или 1) могли обрабатываться одним утверждением. – user95297
@Eun Извините, что вы правы, я пропустил это. Исправлен мой ответ. – emlai
- 1. Установка значения int как конкретного бита
- 2. python - пакет точно 24 бита в unsigned/signed int
- 3. добавление unsigned int в unsigned int *
- 4. Как изменить 4 бита в unsigned char?
- 5. Ошибка: присвоение '_List_iterator <unsigned int, unsigned int &, unsigned int *>' from 'int'
- 6. Установка бита диапазона в порядковых
- 7. Нет совпадений для вызова в '(std :: pair <unsigned int, unsigned int>) (unsigned int &, unsigned int)'
- 8. C В чем разница между unsigned int (a)^unsigned int (b) и unsigned int (a^b)?
- 9. Сопоставление строки с картой unsigned int в unsigned int
- 10. Typecast unsigned int to unsigned long int C++
- 11. сравнение между unsigned int и unsigned char
- 12. Возвращения unsigned long, когда ожидается unsigned int
- 13. преобразование из подписанного int в unsigned int без литья
- 14. Unsigned Int в Java
- 15. encoding unsigned int
- 16. Unsigned int conversion C++
- 17. unsigned long long int
- 18. QLCDNumber и unsigned int
- 19. volatile unsigned int * const
- 20. unsigned _stdcall .... неявно int?
- 21. Переполнение Unsigned Int
- 22. Даже четность unsigned int
- 23. modulo with unsigned int
- 24. ByteBuffer parse unsigned int
- 25. Reflow INT UNSIGNED Series
- 26. Unsigned int array allocation
- 27. Теоретически возможно, чтобы реализация способствовала внедрению unsigned int в int?
- 28. Unsigned long long int to long double
- 29. Какая разница между unsigned short int и unsigned int или unsigned short?
- 30. int и unsigned int in c
Пожалуйста, прочтите [Как спросить] (http://stackoverflow.com/help/how-to-ask). – segarci