1. Tema
intercambio emparejado. Programación, el cambio a un bit impar número entero y el bit incluso, trate de usar menos instrucciones (es decir, los bits 0 y 1 de intercambio de bits, el intercambio Bit 2 Bit 3, y así sucesivamente).
示例1:
输入:num = 2(或者0b10)
输出 1 (或者 0b01)
示例2:
输入:num = 3
输出:3
提示:
num的范围在[0, 2^30 - 1]之间,不会发生整数溢出。
Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/exchange-lcci
propiedad de la deducción de todas las redes. reimpresión comercial póngase en contacto con la reimpresión autorizada oficial, no comercial por favor indique la fuente.
2. Resolución de Problemas
- 01, respectivamente, alternando número binario, el bit de paridad de extracción digital original
- Un poco incluso a la derecha, un poco extraño dejó
- Luego
|
de combinación
class Solution {
public:
int exchangeBits(int num) {
int even = 0b10101010101010101010101010101010;//0xAAAAAAAA
int odd = 0b1010101010101010101010101010101;//0x55555555
return ((num&even)>>1) | ((num&odd)<<1);
}
};