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

【算法】--位运算

位运算

任何一个整数,在计算机底层一定是有三十二位信息的,就是任何一个整数都可以转化为三十二位的一个数

1.打印三十二位数(二进制)代码

#include <iostream>
using namespace std;//打印整数的32位(二进制)
void print(int num)
{for (int i = 31;i >=0; i--){cout << ((num & (1 << i)) == 0 ? "0" : "1");}cout << endl;
}int main()
{int num = 1;print(num);system("pause");return 0;
}

因为一与任何数都是1,所以就让1从第31位开始对mun的每一位数都与1,就可以输出mun的三十一位数了。

2.左移"<<"

左移就是将数整体向左移动一位,空缺的位用0补齐。

代码:

#include <iostream>
using namespace std;//打印整数的32位(二进制)
void print(int num)
{for (int i = 31;i >=0; i--){cout << ((num & (1 << i)) == 0 ? "0" : "1");}cout << endl;
}int main()
{/*int num = 1;print(num);*/int test = 1;print(test);print(test << 1);system("pause");return 0;
}

在这里插入图片描述

那么一个数字左移一位就等同于它乘了2,比如1是2的零次方,1左移一位就变成了2的一次方。
所以num << 1就等于num * 2

3.负数表示

三十二位信息按道理可以表示从0到2的32次方减一个数,但是在计算机系统中一个整型不是32位都使用,最高位会保留,真正表示的范围其实是从0位到三十位,所以整数真正能够表示的范围是0到2的31次方减一的范围(这样就正好是int的最大存储21亿多)。
最高位:

代码:

#include <iostream>
using namespace std;
#include <limits>//打印整数的32位(二进制)
void print(int num)
{for (int i = 31;i >=0; i--){cout << ((num & (1 << i)) == 0 ? "0" : "1");}cout << endl;
}int main()
{/*int num = 1;print(num);*//*int test = 3;print(test);print(test << 1);*/int a = std::numeric_limits<int>::max();cout << "int最大存储:" << a;cout << endl;print(a);system("pause");return 0;
}

在这里插入图片描述

最高位的作用:因为整型既能表示正数也能表示负数,所以如果是无符号的整型就可以用32位都表示整数范围就在0~2的32次方减一,有符号整数是将范围变为了-的2的31次方到正的2的31次方-1

正数的表达方式:最高位的符号位为0,后面哪一位有1就用二的次方加起来。
下图就是37的二进制
在这里插入图片描述
负数的表达方式:最高位的符号位为1,后面的状态取反然后再加1,
这个就是-475的二进制
在这里插入图片描述

在这里插入图片描述
当我们用十进制打印int的最大值和最小值时,最大值的绝对值要比最小值的绝对值小1,是因为0也需要占一位而且是包括在正数中的。

我们在代码中的加,减,乘,除,取模,都是在计算机内部转换为二进制然后通过位运算(| & ^ ~)进行计算的。

http://www.dtcms.com/a/590346.html

相关文章:

  • 门户网站的案例分析开发游戏用什么软件
  • 网站建设目标个人博客dwzh-cn 安装wordpress
  • 长沙网站优化步骤哈尔滨网站建设渠道
  • 浏览器打开网站wordpress表情不显示
  • 网站图片都是站外连接对seo小公司做网站推广好不好
  • 网站配置到iis后读不了数据seo优化百度技术排名教程
  • 第7章树和二叉树:线索二叉树
  • 网站专题制作流程深圳建网站哪个好
  • java的tomcat源码的http的session
  • 黑河北京网站建设网站架构计划书
  • 局域网网站建设软件怎么自己开公司
  • 网站建设是系统工程广州网站建设 名片制作 网站管理
  • 静态网站做淘宝客如何做英文网站的外链
  • 企业二级网站怎么做建邺做网站价格
  • 【Envi遥感图像处理】018:envi编辑头文件的方法及具体应用
  • RHCE复习作业2
  • AUTOACT论文翻译
  • html5 做手机网站什么是做学院网站
  • ipad 建网站电商入门教学
  • e2ee网站开发框架2.23先行版wordpress小论坛小程序
  • 携程网建设网站的理由济南智能网站建设报价
  • flash网站在线diy源码如何做网站首页关键词
  • B树与B+树核心差异深度解析
  • 11.9 脚本调试 手机网页调试参考
  • 制作网站公司网址开发公司公司简介
  • 满洲里做网站郑州企业网站价格
  • FoundationPose:统一的新物体6D姿态估计与跟踪
  • 地方志网站建设方案南京平台网站建设
  • 杭州建站模板黄岛网站建设公司
  • C语言容易被忽略的易错点(2)