首先,你要记住并且不要问为什么:“在计算机中,所有的数据,最终都是使用二进制数表达的。

比如,你的电脑是32位系统,还是64位系统。其实,说的是你的电脑的计算存储能力,能够计算存储2的32次方之多的数据,或2的64次方之多的数据。一看到32,64,可能有些人会说,电脑怎么才计算存储这么点数据呀?且慢,我先带你算算2的32次方或64次方是多少。

——————————————————————————————————————

1:2的0次方

2:2的1次方(第 1 个手指)

4:2的2次方(第 2 个手指)【2(次方)2得四】

8:2的3次方(第 3 个手指)【3(次方)八,这…】

16:2的4次方(第 4 个手指)【4(次方)4十六】

32:2的5次方(第 5 个手指)【5(次方)等于32中的3+2】

64:2的6次方(第 6 个手指)【6(次方)对应64】

128:2的7次方(第 7 个手指)【七(次方)和1音形都很相近】

256:2的8次方(第 8 个手指)【八(次方)和二,就10分完美】

512:2的9次方(第 9 个手指)【九(次方)五之尊】

1024:2的10次方(第 10 个手指)【10(次方)对应1024】

从2的0次方到10次方,哪怕做不到脱口而出,起码也要做到屈指可数

——————————————————————————————————————

2048:2的11次方

4096:2的12次方

8192:2的13次方

16385:2的14次方

32768:2的15次方

65536:2的16次方

131072:2的17次方

262144:2的18次方

524288:2的19次方

1048576:2的20次方

——————————————————————————————————————

…………

…………

…………

太多了,算不下去了。有兴趣的自己算吧。看看你还敢不敢说2的32次方或64次方小。

好了,言归正传,好好来理解一下“二进制”的精髓。

先拿一个二进制的整数来说:

0111,在二进制中,是这样理解的:0X(2的3次方) + 1X(2的2次方) + 1X(2的1次方) + 1X(2的0次方) = 0X8 + 1X4 + 1X2 + 1X1 = 7。

————————————————————————————————————————

解读:从该某某进制的数的小数点左边第一位起往左算,分别对应乘以该进制的0次方->乘以该进制的1次方->乘以该进制的2次方->乘以该进制的3次方…

再拿一个二进制的小数来说:

0.0111,在二进制中,是这样理解的:0X(2的-1次方) + 1X(2的-2次方) + 1X(2的-3次方) + 1X(2的-4次方) = 0X(1/2) + 1X(1/4) + 1X(1/8) + 1X(1/16) = 你自己算吧。

————————————————————————————————————————

解读:从该某某进制的数的小数点右边第一位起往右算,分别对应乘以该进制的-1次方->乘以该进制的-2次方->乘以该进制的-3次方->乘以该进制的-4次方…

题外话:不要告诉我不懂“负次方”!负次方:一个数的正次方的倒数,即为其负次方。

所以,二进制的数,转换成十进制,很简单。

只需将该二进制的数,按照小数点左边和右边,写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。

例:

二进制的:

0111.0111 = 0X(2的3次方) + 1X(2的2次方) + 1X(2的1次方) + 1X(2的0次方) + 0X(2的-1次方) + 1X(2的-2次方) + 1X(2的-3次方) + 1X(2的-4次方) = 0X8 + 1X4 + 1X2 + 1X1 + 0X(1/2) + 1X(1/4) + 1X(1/8) + 1X(1/16) = 你自己算吧。

那反过来,十进制的数,如何转换成二进制?

讲这个之前,先看个例子:

假设十进制整数A,转换成二进制数为dcba的形式,那么用"按权相加"法,得:

A = a X (2的0次方) + b X (2的1次方) + c X (2的2次方) + d X (2的3次方)

等式左右两边,同时除以2,得:

A/2 = a X (2的0次方)/2 + b X (2的1次方)/2 + c X (2的2次方)/2 + d X (2的3次方)/2

上面等式右边,因为只有 a 是乘以 2的0次方 这一项,所以被2除不开而被余下来;

所以第一次除以2,将得到余数,即其二进制的小数点左边第一位 a ;

上面等式右边,把 a 取出来,得到的商:b X (2的0次方) + c X (2的1次方) + d X (2的2次方) 第二次除以2,得:

b X (2的0次方)/2 + c X (2的1次方)/2 + d X (2的2次方)/2

上面式子中,因为只有 b 是乘以 2的0次方 这一项,所以被2除不开而被余下来;

所以第二次除以2,将得到余数,即其二进制的小数点左边第二位 b ;

……

以为类推,除以2取余数,得到的商再除以2再取余数,将不断得到其二进制的小数点左边第一二三四……位 abcd 。

再看个例子:

假设十进制小数B,转换成二进制数为0.efgh的形式,那么用"按权相加"法,得:

B = e X (2的-1次方) + f X (2的-2次方) + g X (2的-3次方) + h X (2的-4次方)

等式左右两边,同时乘以2,得:

BX2 = e X (2的-1次方) X2 + f X (2的-2次方) X2 + g X (2的-3次方) X2 + h X (2的-4次方) X2

上面等式右边,因为只有 e 是乘以 2的-1次方 这一项,所以乘以2而变成整数;

所以第一次乘以2,将得到整数部分,即其二进制的小数点右边第一位 e ;

上面等式右边,把 e 取出来,剩下的小数部分:f X (2的-1次方) + g X (2的-2次方) + h X (2的-3次方) 第二次乘以2,得:

f X (2的-1次方) X2 + g X (2的-2次方) X2 + h X (2的-3次方) X2

上面式子中,因为只有 f 是乘以 2的-1次方 这一项,所以乘以2而变成整数;

所以第二次乘以2,将得到整数部分,即其二进制的小数点右边第二位 f ;

……

以为类推,乘以2取整数部分,剩下的小数部分再乘以2再取整数部分,将不断得到其二进制的小数点右边第一二三四……位 efgh 。

第二讲,我们来谈谈:“什么是二进制”相关推荐

  1. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  2. 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 ​​​​​​​ lin ...

  3. 16位汇编语言第二讲系统调用原理,以及各个寄存器详解

    16位汇编语言第二讲系统调用原理,以及各个寄存器详解 昨天已将简单的写了一下汇编代码,并且执行了第一个显示到屏幕的helloworld 问题? helloworld怎么显示出来了. 一丶显卡,显存的概 ...

  4. 计算机基础算术加法,计算机基础第二讲.ppt

    计算机基础第二讲 计算机的运算 算术运算:加.减.乘.除 逻辑运算:与.或.非 数据比较:大于.小于.等于.不等于.大于等于.小于等于 数据传送:输入.输出.赋值 二进制的算术运算 加法 0+0=0 ...

  5. 无线网络技术导论笔记(第二讲)

    无线网络技术导论 主讲教师:张亮老师 第二讲 无线传输技术基础 https://blog.csdn.net/Wjwstruggle/article/details/90757351 目录 无线网络技术 ...

  6. 《第一阶段 java基础 Day02笔记》————————第二讲Java基本语法

    第二讲Java基本语法 课程大纲 课程内容 学习效果 掌握目标 Java基本语法 注释.关键字.标识符 掌握 熟练掌握Java的注释方式 熟练掌握Java中的关键字 熟练掌握标识符概念 数据类型.常量 ...

  7. 视觉SLAM十四讲学习记录 第二讲

    书接上回: 第一讲 第二讲 初识SLAM 2.1 引子:小萝卜的例子   首先作者借"小萝卜"这类机器人引出了几个概念: 自主运动能力是很多高级功能的前提,需要定位与感知(建图)来 ...

  8. 【SLAM十四讲】一到十四讲内容大致速通(更新至第二讲)

    关于开学了决定不能再摆烂而开始写blog这件事 前言 简单的事前提醒 第一讲 预备知识 第二讲 初识SLAM 2.1 SLAM框架模块 2.2 SLAM问题的数学表述 2.3 编程基础 第三讲 三维空 ...

  9. C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息

    说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第二讲 WMI完美秀出CPU编号厂商主频电 ...

  10. 《图像分类》概述,李飞飞经典CS231N2021《卷积神经网络视觉识别》课程第二讲!...

    来源:专知本文多图,建议阅读5分钟本文深入探讨了基于神经网络的计算机视觉深度学习方法的细节. [导读 ]李飞飞老师的CS231N课程<卷积神经网络视觉识别>被奉为经典,最新2021季已经于 ...

最新文章

  1. [JAVA EE]常用的实体类注解
  2. SAP System Copy Guide, ECC 6.0, Oracle
  3. 【小白的CFD之旅】02 江小白
  4. sql server browser启动不了_机器人、无人机惊艳亮相!内江市2020年“119”消防宣传月活动正式启动...
  5. python的字典与集合
  6. WKWebView进度及title
  7. day25 java的集合(3)List
  8. E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (2: 没有那个文件或目录)
  9. modelsim安装_XLINUXFPGA开发工具篇modelsim的安装
  10. Vb 6.0 ado连接mysql_VB使用ADO操作Access数据库
  11. 绝对定位的元素设置百分比时候的参照物都是谁
  12. 面试系列——爱奇艺Andromeda 跨进程通信组件分析
  13. 手把手从0打造电商平台前端
  14. Eureka Server的REST端点
  15. 『Python』matplotlib的imshow用法
  16. Win10计算机窗口空白,Win10系统下启用或关闭windows功能打开后显示空白如何解决...
  17. Maven的本地初始配置三步走
  18. Resteasy ,从学会使用到了解原理
  19. 模拟退火模型(matlab实现)
  20. 《程序员生存定律》读后感

热门文章

  1. html tfoot标签,HTML tfoot 标签
  2. 代码要想写得好,品位必须提一提!
  3. 美团面试:JVM 堆内存溢出后,其他线程是否可继续工作?
  4. 诡异!MyBatis的Insert方法一直返回-2147482646?
  5. 在 k8s 中使用 Kubevirt 运行管理 Windows 10 操作系统
  6. 每日一皮:这就是成都马拉松???...
  7. I Cannot Breathe:如果没有这些软件的话(Mac篇)
  8. 代表Java未来的ZGC深度剖析,牛逼!
  9. 假如双十二,淘宝的Java工程师把JVM炸了……
  10. 计算机基础16秋在线作业,北大16秋《计算机基础与应用-第二组》在线作业.doc