1.应用场景
主要用在计算机内部储存和传输。 你可能还会问: 学习二进制究竟有什么用呢? 平时的编程中,我们好像并没有使用相关的知识啊? 确实,目前的高级语言可以帮助我们将人类的思维逻辑转换为使用 0 和 1 的机器语言, 我们不用再为此操心了。 但是,二进制作为现代计算机体系的基石,这些基础的概念和操作,还是很需要了解的。 二进制贯穿在很多常用的概念和思想中,例如逻辑判断、二分法、二叉树等等。 逻辑判断中的真假值就是用二进制的 1 和 0 来表示的; 二分法和二叉树都是把要处理的问题一分为二,正好也可以通过二进制的 1 和 0 来表示。 因此,理解了二进制,你就能更加容易地理解很多计算机的数据结构和算法,也为我们后面的学习打下基础。 |
2.学习/操作
1. 文档进制转换:二进制、八进制、十六进制、十进制之间的转换 总体思路:先转为十进制,然后再转为目标进制 初学JAVA随记——8bit(1byte)的取值范围是+127到—128 - 吸灰 - 博客园 位(bit)、字节(byte)、字符、编码之间的关系_prdslf001001的博客-CSDN博客 字节、字、bit、byte的关系_Bobit - CSDN博客-CSDN博客_bit byte 计算机原码,反码,补码_chenchao2017的博客-CSDN博客_原码反码补码 2. 整理输出2.1 弄清楚这个事情,首先要知道,二进制与位的概念二进制 即01010101...组成的一段数字,计算机内部[底层]使用的即二进制,包括储存和传输。 补充: 计算机使用二进制和现代计算机系统的硬件实现有关。组成计算机系统的逻辑电路通常只有两个状态,即开关的接通与断开。 二进制的发明者 是 戈特弗里德·威廉·莱布尼茨[德国数理哲学大师] 于1679年发明,你说[莱布尼茨]听着有点熟悉,对,就是那个微积分公式,大名鼎鼎的[牛顿-莱布尼茨公式,又名 微积分基本定理]的提出者之一。不过他的命运结局并不好,而且与牛顿不为人知的另一面有关~ 位(bit, 比特) 可以简单理解为就是0 1所谓的位置,每个就是位。 如:01010101 就是一个长度为8bit的二进制数字 ,现实中我们常用十进制表示和运算,至于进制之间的换算 ,请另行查阅资料。 也可参见 进制转换:二进制、八进制、十六进制、十进制之间的转换 // 总体思路:先转为十进制,然后再转为目标进制 2.2 核心点这里以Java为例,其他语言实现也大体是一样的 8bit (1byte)的取值范围是 -128 -- 127 这样正负1如下: +1 : 00000001 -1 : 10000001 最大的正数就是0 1111111,即 2^0+2^1+……+2^6=127, 最小的负数,同理,为1 1111111,即-127。 上述的描述会出现一个问题,就是0,会出现一个 +0 和一个 -0,于是规定-0为-128,这样就与计算机的补码(程序都是按补码运行的) 完美地结合在一起。 --- 到底是如何完美地,请查看计算机的原码,补码,反码 以此类推,int,short,long都可以推出他们的取值范围。 备注: 关于计算机的原码,补码,反码 见 计算机原码,反码,补码 这也是目前计算机系统底层 8 位整型数字的区间范围,所以计算机底层是通过补码来表示数字的,也只能通过补码来表示。 插入了解到这里,我们再来看为什么 255 是无符号正数,补码和原码都是 255,即 16 个 1 组成的机器数,转化为 后续补充 ... |
3.问题/补充
TBD |
后续补充
...