我对二进制的理解

理解进制的重要方法是类比我们熟知的十进制

10进制

一个正常的人类,拥有10根手指,每根手指代表1个信息,那么两双手掌便可表达10个信息。1, 2, 3, …, 10。

所以人类当初用 逢10进1,也就是10进制。

什么是逢10进1?即每超过9进一位, 9, 10, 99, 100, 999, 1000, …

那么理解二进制难吗?其实觉得难只是不习惯罢了。

2进制

通过上述解释,我们可以明白2进制就是 逢2进1

即0, 1, 10, 11, 100

那么我们来类比一下(两边在数值上并不相等,只是比较他们的进位方式)。

0 -> 1 相当于 0 -> 1

1 -> 10 相当于 9 -> 10

11 -> 100 相当于 99 -> 100

这仔细想想不难理解吧,我相信难的是怎么能一眼看出 二进制数所表示的 十进制数

如果你刚刚接触2进制,给你一个二进制数让你转十进制,而且不能用纸笔。想必你应该会这么干。

如(1010)2

此时你的心中,1是1,10是2,11是3,100是4,101是5,1010是10。

过了一段时间,经过一遍遍迭代,你迭代出来了。但如果此时给你一个长一点复杂点的2进制呢?

如(1101011)2

现在给你纸笔,你肯定会用一个公式。从右往左,(a_0)代表最右边第一位数,(n)指最左边最后一位数的下标。(这里即6)

(a_02^0 + a_12^1 + a_22^2 + … + a_n2^n)

当老实的你写完这个式子的时候,已经过去30秒了,当然最后还是算出了答案。

那如果此时,我要求你在15秒内答出呢?那么可以用下面这个方法。

1 1 0 1 0 1 1
64 32 16 8 4 2 1

当前位如果为1时,则加上下面的数字,否则不加。

(64 + 32 + 8 + 2 + 1 = 107)

对这就是对上面那个公式的简化版本,相信聪明的你一定懂了。

那么这个方法和那个公式是什么原理呢,从而避免了迭代造成过多的时间开销?

这时候我们用上述方法来描述十进制

比如: 114 (恼)

(110^2+110^1+1*10^0=100 + 10 + 4 = 114)

二进制其实也是同理,只不过他的进制为2罢了

比如: 01101

(02^4+12^3+12^2+02^1+1*2^0=0+8+4+1=13)

其它进制也是同理,主要你要熟悉到底什么是进制,就是逢N进1,但具体怎么领悟就是时间与思考的问题了。

10进制转换2进制

如果我还有业余时间的话会去谈谈我对”短除法”转2进制的理解。

同理,也可以通过类比的方法也能理解。

记住二进制短除法中的数其实就是 二进制在十进制下的投影

第一次写这种内容,小学生写的,如果把你搞混了,实在抱歉:-(

当然如果有用,那就十分感谢啦~

Original: https://www.cnblogs.com/littleblacklb/p/16220171.html
Author: littleblackLB
Title: 我对二进制的理解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583274/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Vue项目配置CDN

    两篇博客的实现方法不同。 另外:nginx的前端文件路径应该为:/usr/local/nginx/html下。 index.html <head> <meta c…

    Linux 2023年6月7日
    0100
  • macOS Catalina new Shell,解决 The default interactive shell is now zsh

    The default interactive shell is now zsh. To update your account to use zsh, please run ch…

    Linux 2023年5月28日
    0146
  • ASP.NET CORE在docker中的健康检查(healthcheck)

    在使用docker-compose的过程中,很多程序都提供了健康检查(healthcheck)的方法,通过健康检查,应用程序能够在确保其依赖的程序都已经启动的前提下启动,减少各种错…

    Linux 2023年6月6日
    0116
  • Windows 域控配置时间同步

    此功能是因内网时间与互联网时间不同步,需我们手动指定互联网NTP服务器来同步时间。一般默认情况下,加域客户端同步的是域主机的时间。如果域控的主机时间不准的话,那么域内的客户端也就随…

    Linux 2023年6月8日
    0146
  • Linux 时间操作及其同步

    本文将以 Arch Linux 为例,讨论 Linux 的时间操作和同步方法。 操作系统的时间 (clock) 由三或四部分决定: 时间值; 是否为 UTC 时间; 时区; (如果…

    Linux 2023年5月27日
    0100
  • Linux通过ssh命令连接远程服务器

    命令使用语法:1,指定用户:ssh -l root 192.168.0.11或则ssh root@192.168.0.11 2,如果修改过ssh登录端口的可以:ssh -p 123…

    Linux 2023年6月13日
    077
  • 字符串

    20、【剑指Offer学习】【面试题20:表示数值的字符串】 38、【剑指Offer学习】【面试题38:字符串的排列】 46、【剑指Offer学习】【面试题46:把数字翻译成字符串…

    Linux 2023年6月13日
    0114
  • 远程小工具PuTTY

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。我们连接服务器一般用ssh或者telnet,这…

    Linux 2023年5月27日
    0102
  • MySQL实现备份(3)之xtrabackup 备份工具

    xtrabackup工具: 是percona公司开发的一个用于对MySQL进行备份的工具。相对于mysqldump,xtrabackup支持增量备份、差异备份等。 使用手册;htt…

    Linux 2023年6月7日
    0129
  • 幸运的袋子 附加动图演示!

    幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,…

    Linux 2023年6月13日
    090
  • 5.6 Linux Vim撤销和恢复撤销快捷键

    使用 Vim 编辑文件内容时,经常会有如下 2 种需求: 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。 将文件内容恢复之后,经过仔…

    Linux 2023年6月7日
    0111
  • gitlab备份迁移与升级

    bash;gutter:false; 升级计划: https://docs.gitlab.com/ee/update/index.html#upgrade-paths</p&…

    Linux 2023年6月7日
    073
  • Linux 配置Java环境变量

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 注:目前,您需要在官网下载时登录。在此共享帐户以方便下载。 [En] Note: at present, you …

    Linux 2023年5月27日
    098
  • 微服务的性能监控、压测和调优(转载自知乎:阿里自动化测试群)

    一、何为压力测试 性能压测是什么:就是考察当前 &#x8F6F;&#x4EF6;和 &#x786C;&#x4EF6;环境下,系统所能承受的 &amp…

    Linux 2023年6月8日
    0111
  • Flask的环境配置

    from flask import Flask​ 通过专门的配置文件,读取配置项,适用于配置项较多 settings.py class Config(object):    DEB…

    Linux 2023年6月8日
    0100
  • 机器学习入门–图学习基础01

    图表示学习入门知识 数学基础看文章理解图的拉普拉斯变换,解答了上一周文章公式中的L拉普拉斯矩阵是怎么来的 本文仅限我个人记录学习历程所用,目前是大一在读,刚刚接触AI领域。如有不足…

    Linux 2023年6月6日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球