我对二进制的理解

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

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)

大家都在看

  • postgresql强制删除数据库

    sql;gutter:true; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity W…

    Linux 2023年6月8日
    075
  • 多个USB转串口设备区分方法

    当计算机或者其他USB主机上使用多个USB转串口设备时,会遇到多个串口无法与具体的串口设备对应起来的问题,包括更换不同USB端口串口序号发生改变,多个设备USB插拔顺序不同导致串口…

    Linux 2023年6月7日
    054
  • find 查询命令 & 正则表达式

    今日内容 find 正则表达式 Linux 三剑客之 grep 内容详细 一、find 按名称或属性查询文件 按名称查询 find [查找目录] [参数] [] 通配符 : * 表…

    Linux 2023年5月27日
    082
  • CANoe的安装和使用

    CANoe的简介 CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment。CANoe集合了网络监控、数据获取/记录…

    Linux 2023年6月13日
    0192
  • PhpCms V9调用指定栏目子栏目文章的方法

    PhpCms V9调用指定栏目子栏目文章的方法 第一种,直接写父类id {pc:content action=”lists” catid=”父类…

    Linux 2023年6月13日
    091
  • .htaccess文件解析漏洞

    前言 htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的…

    Linux 2023年6月13日
    073
  • linux mv 命令中断的解决办法

    背景:使用mv对服务器文件进行迁移的过程中,因为网络中断,所以迁移到一半被停止了。 现状:有一部分文件没有迁移完,但是文件夹已经存在了,重新mv提示文件夹已经存在,切已经有文件,所…

    Linux 2023年5月27日
    0100
  • typora使用

    一:typora、配置picgo+github安装以及配置 picgo 、Node.js和typora安装包见百度网盘链接: 参考的教程如下: 二:typora使用语法 Ctrl+…

    Linux 2023年6月13日
    077
  • WPF 推荐一个剪贴板内容查看工具

    本文来安利大家一个好用的 Windows 剪贴板的内容查看工具 这是在 GitHub 上完全免费开源的应用,由 walterlv 开发的应用,详细请看 https://github…

    Linux 2023年6月6日
    0117
  • openssh升级至7.2

    此处升级操作的原则是保留系统原有ssh服务,新安装高版本ssh服务 1、下载openssh源码包 http://www.openssh.com/portable.html 2、安装…

    Linux 2023年6月14日
    094
  • 解决“WARNINGThe remote SSH server rejected X11 forwarding request.“警告

    使用xshell连接服务器时,出现了”WARNING! The remote SSH server rejected X11 forwarding request.&#…

    Linux 2023年5月27日
    079
  • 国庆专属头像一键生成搭建教程,附源码!

    国庆节马上就要来啦! 没有一个像样的微信头像怎么行。 为此小编为大家带来了一款国庆节国旗头像生成源码,有服务器、域名的朋友可以自行下载上传至服务器之后提供给大家使用。 没有服务器、…

    Linux 2023年6月7日
    099
  • Java轻松实现,每天给对象发情话!

    一、引言 最近看到一篇用js代码实现表白的文章,深有感触。然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞实现思路: 使用HttpClien…

    Linux 2023年6月14日
    075
  • 安装完Ubuntu启动时自动进入grub命令行模式的解决办法

    1.先使用ls命令,找到Ubuntu的安装在哪个分区: grub>ls 会罗列所有的磁盘分区信息,比方说: (hd0,1),(hd0,5),(hd0,3),(hd0,2) 2…

    Linux 2023年6月13日
    082
  • 【实测】Python 和 C++ 下字符串查找的速度对比

    最近在备战一场算法竞赛,语言误选了 Python ,无奈只能着手对常见场景进行语言迁移。而字符串查找的场景在算法竞赛中时有出现。本文即对此场景在 Python 和竞赛常用语言 C+…

    Linux 2023年6月13日
    0101
  • python 正则匹配

    正则匹配 现公司要开发一个业务管理系统,要求注册环节的密码需要提示用户其安全等级,密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分;此外,密码的组成可以由字母,数字,…

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