二进制左右位移,与 & 或 | 计算

本贴最后更新于 2944 天前,其中的信息可能已经事过境迁

1.首先怎么心算快速的转换二进制?

接下来找规律比如:
1 转二进制是:1
2 转二进制是:10
4 转二进制:100
8 转二进制:1000
16 转二进制:10000
发现 2 的 n 次方有 (n+1)个数,
并且结果都为 1 和 n 个 0;

发现 2 进制的位数是这样的:512 256 128 64 32 16 8 4 2 1

接下来我们实战找一下:

84 转成二进制是:1010100
55 转成二进制是:110111
11 转成二进制是:1011

心算转二进制:

84 离 2 进制位数离谁最近?当然属 64,所以
64 的位数为 1,然后 84-64=20,20 离 16 最近,所以
32 的位数为 0,
16 的位数为 1,20-16=4,然后还剩 4,所以
8 的位数为 0,4 的位数为 1,4-4=0,没了,其他没有的补 0;
也就是 1010100

2.按左位移和右位移

按左位移(<<)找规律:
原理:转二进制后往左边移动位数,右边不够的位上补 0,左边溢出则移除
3 按左位移 1 位 3<<1 转二进制位移 11<<110=6
3 按左位移 2 位 3<<2 转二进制位移 11<<1100=12
3 按左位移 3 位 3<<3 转二进制位移 11<<11000=24
4 按左位移 1 位 4<<1 转二进制位移 100<<1000=8
4 按左位移 2 位 4<<2 转二进制位移 100<<10000=16
4 按左位移 3 位 4<<3 转二进制位移 100<<100000=32

发现规律为 m 的 n 次按左位移是 m 乘以 2 的 n 次方;

按右位移(>>)找规律:
原理:转二进制后往右边移动位数,右边超出的位移除,左边少了补 0
32 按右位移 1 位 32>>1 转二进制位移 100000>>10000=16
32 按右位移 1 位 32>>2 转二进制位移 100000>>1000=8
32 按右位移 1 位 32>>3 转二进制位移 100000>>100=4

发现规律为 m 的 n 次按右位移是 m 除以 2 的 n 次方;
(按符号右位移 >>> 不同的是左边少了补符号位,对于正数没关系,但是负数则是补 1)

3.与&和或 | 计算

按与(&)找规律:
原理:转二进制后 0 和 1 位数对比,含 0 则为 0,都是 1 才为 1
3&4 转二进制后 011&100=000 结果为 0
4&5 转二进制后 100&101=100 结果为 4
5&6 转二进制后 101&110=100 结果为 4
6&7 转二进制后 110&111=110 结果为 6

按或(|)找规律:
原理:转二进制后 0 和 1 位数对比,含 1 则为 1,都是 0 才为 0
3|4 转二进制后 011|100=111 结果为 7
4|5 转二进制后 100|101=101 结果为 5
5|6 转二进制后 101|110=111 结果为 7
6|7 转二进制后 110|111=111 结果为 7

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖 • 1 关注
  • 位移
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 184 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 697 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 616 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 644 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    92 引用 • 752 回帖
  • 笔记

    好记性不如烂笔头。

    312 引用 • 794 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 412 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 686 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 181 关注
  • Anytype
    3 引用 • 31 回帖 • 33 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 116 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 12 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 72 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 234 回帖 • 1 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 1 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 26 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 124 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 253 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 6 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 523 关注