当前位置: 首页 > news >正文

网站建设翻译英文360建筑网怎么样

网站建设翻译英文,360建筑网怎么样,微电影网站源码,莱芜网站优化方案目录 题目 实例 方法一:直接交换 方法二:间接交换 拓展 题目 编写一个函数,将一个无符号整数的所有位逆序(在32位机器下) 实例 例如有一个无符号整数 unsigned int num 32; unsigned int 在32位系统中占4个字…

目录

题目

实例

方法一:直接交换

方法二:间接交换

拓展


题目

编写一个函数,将一个无符号整数的所有位逆序(在32位机器下)

实例

例如有一个无符号整数 

unsigned int num = 32;

unsigned int 在32位系统中占4个字节(32位)

32的二进制数是:       0000 0000 0000 0000 0000 0000  0010 0000

逆序后的二进制数是: 0000 0100 0000 0000 0000 0000  0000 0000

逆序后10进制数是   :  1 * 2^26 = 67108864

方法一:直接交换

思路:就是将num的最高位最低位依次取出并交换

问题来了: 如何依次取出最高位和最低位呢?

先说最低位:

可以利用 0 & 1 = 0 , 1 & 1 = 1的方法判断,即可用0x00000001和num进行&运算,如果结果是0则表示最低位是0,否是是1

同理:最高位将num与0x80000000进行&运算(因为8的二进制是10000),如果结果是0则表示最低位是0,否是是1

取出最高位最低位就可以进行交换。

if(最高位是1)

{

        将最低位变成1

        利用 0 | 1 = 1 , 1 | 1 = 1来进行操作

        num = num | 0x00000001;// 即最低位变成1

}  

else

{    

        将最低位变成0

        利用 0 & 1 = 1 , 1 & 1 = 1来进行操作

        num = num & 0xFFFFFFFE;// 即最低位变成0

        0xFFFFFFFE还可以换一种写法: ~(0x00000001) 这样方便移位

}

 最低位同理

unsigned int reverseBits(unsigned int num)
{int i;for (i = 0; i < 16; i++){// 左往右依次取出num最高位unsigned int hight = (num & 0x80000000 >> i) == 0 ? 0 : 1;// 右往左依次取出num最低位unsigned int low   = (num & 0x00000001 << i) == 0 ? 0 : 1;// 改变最低位if (hight == 1){// 低位变成1num |= (0x00000001 << i);}else{// 低位变成0num &= ~(0x00000001 << i);}// 改变最高位if (low == 1){// 高位变成1num |= (0x80000000 >> i);}else{// 高位变成0num &= ~(0x80000000 << i);}}return num;
}

方法二:间接交换

思路:就是将num的各个位取出并逆序存放在数组中,然后转成十进制

// 思路就是将各个位都取出来 逆序存在数组
unsigned int reverseBits_2(unsigned int num)
{int bits[32]; // 存放num的各个位int i;for (i = 0; i < 32; i++){if (((num >> i) & 1) == 1)// 判断num的最低位是0还是1{bits[32 - i - 1] = 1;}else{bits[32 - i - 1] = 0;}}// 再组合(就是已知二进制数求10进制数)unsigned int ret = 0;for (i = 0; i < 32; i++){if (bits[i] != 0){ret += (unsigned int)pow(2, i);}}return ret;
}

拓展

求一个数二进制1的个数

        //方法一:1 左移for (int i = 0; i < 32; i++) {if((num&(1<<i)) == (1<<i)){count++;}}//方法二:数字右移for (int i = 0; i < 32; i++){if(((num>>i)&1)==1){count++;}}//方法三:减一&本身减一相当于将最后一个 1 消掉,后面的0变为1,在&相当于去掉 最后一个1while (num!=0){num=(num-1) & num;count++;}

http://www.yayakq.cn/news/346311/

相关文章:

  • 网站头部seo范例门户网站建设管理总则
  • 做网站公奇闻司郑州汉狮微信小程序后台管理系统
  • 网站开发服务商平台做网站有什么书
  • 惠州附近公司做网站建设多少钱付公司制作网站费怎么做凭证
  • 上海网站建设推荐q479185700顶你做刷机网站赚钱吗
  • 游民星空是用什么做的网站餐饮公司网站建设
  • 国外有哪些优秀的网站沭阳三剑客做网站
  • 域名与网站建设net做公司网站
  • 现在建设网站都用什么软件微商城网站策划
  • 大连网站建设过程php网站语言切换功能如何做
  • 网站服务器租用多少钱才合理呢网站建站网站制作公司
  • 帝国网站网站手机版怎么做wordpress采集小红书
  • 大气金融投资企业网站模板.net做网站教程
  • 怎么用手机创建网站全新装修效果图大全
  • 西安网站开发软件中国旅游电子商务网站建设情况
  • 二级院系网站建设情况南海做网站
  • 个人建设网站程序网络运营的培训
  • 电子商务网站自助建站京东网站建设哪家好
  • 世界网站排名动漫制作专业名人
  • wordpress百度贴吧纯静态网站做优化有什么影响
  • 网站各类模块内容说明小程序和h5的区别和优势
  • 屏山县建设局网站wordpress 企业站模板
  • 做网站需要几个服务器网页制作的公司的服务
  • 做kegg的网站wordpress前台发布页制作
  • 广州建筑装饰集团有限公司北京网站优化公司哪家好
  • 太原手机网站设计网站宽度 1000px
  • 网站建设三种方法访问网站的原理
  • 做创意礼品的网站石家庄网站建设技术支持
  • 学做简单网站视频教程南岸网站建设哪家好
  • 乔拓云网站建设网站开发企业开发