反序一个无符号整数x 不占用额外的空间 采用异或操作
来源:互联网 发布:xrd分析软件下载 编辑:程序博客网 时间:2024/04/30 01:38
#ifndef BITSREVERSE_H_#define BITSREVERSE_H_#include<iostream>using namespace std;class Bit{public:typedef unsigned int uint;/* * 交换无符号数字x的i,j位 * 曾出现两处书写错误 1. 进行异或交换时候,构造bit时候<< 误写成>>. 2.循环交换时候n/2误写成n. */int swapbits(uint &x, uint i, uint j){uint n = sizeof(uint);n = n * 8;if (i >= n || j >= n)return -1;uint bj = (x >> j) & 0x1;uint bi = (x >> i) & 0x1;if (bj ^ bi) /* i,j bit 的值不相同的时候进行交换 */{x = x ^ ((0x1 << i) | (0x1 << j)); /* 采用异或操作进行交换 */}return 0;}int reversebits(uint &x){uint n = sizeof(uint);n = n * 8;for (uint i = 0; i < n / 2; i++)/* 字符串反序 */swapbits(x, i, n - i - 1);return 0;}void output(uint x){cout << hex << x << endl;}};#endif
0 0
- 反序一个无符号整数x 不占用额外的空间 采用异或操作
- 不占用额外空间 交换两个变量的值
- 不占用任何额外空间的情况下交换两个数的值
- 不占用任何额外空间的情况下交换两个数的值
- 判断一个无符号整数是不是2的幂
- 在一个无符号整数中翻转位的顺序
- 将一个无符号整数的bit位逆序
- 异或加密,不消耗额外空间
- 无符号整数的bitmap
- 字符串按照单词反序(增加额外空间和不增加额外空间两种实现方法)
- 有n个32位无符号整数,求其中异或之后结果最大的两个数
- 【C++】判断一个数是不是回文数,不使用额外的空间
- 深入理解异或运算 xor 的含义——再探不使用加减乘除实现加法运算、不使用额外空间交换两个变量的值
- 判断符号整数和无符号整数的方法
- 把一个无符号整型数字的二进制序列反序后输出
- 位操作循序渐进一(获得一个整数的符号)
- 一种不用额外空间反转整数的方法
- 字符串或者数组的循环左移或右移(不开辟额外的空间存放中间值)
- cas 入门之十五:ticket 存储方案-jpa ticket存储
- PhotoCamera引出的一个问题
- Tiny6410 移植RT5370 USB无线网卡的方法
- cas 入门之十六:ticket 存储方案之ehcache ticket存储
- 黑马程序员_字符串理解
- 反序一个无符号整数x 不占用额外的空间 采用异或操作
- 2.读取TXT文本内容,显示至图形界面中
- linux/ubuntu下free查看内存占用大的解释
- linux kernel initiate steps
- cas 入门之十七:ticket 存储方案-memcached ticket 存储
- How To Be an Effective Team Leader
- C语言 while(feof(fp)){}多循环一次解决方案
- ZOJ 3795 Grouping(强联通缩点,记忆化搜索)
- 两个栈实现队列 (面试题 7)