前言: 二进制,回想起来还是当初刚学计算机导论的时候接触到的,貌似现在搞应用的cxy用的真的很少,也可能是我比较无知(滑稽),基本上都用C++,Java,Python等高级语言来开发程序,谁还用得到这个,它给我的第一感觉就是那些搞底层交互的程序该干的事儿,那闲话不多说了,今天就来讨论一下这个令人熟悉又陌生的知识吧。
那么介绍这么多了,什么是二进制呢?
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
信息数据的存储单位:
- 位(Bit):内存的最小单位
- 字节(Byte):数据存储的最小单位,1 Byte = 8 Bit
- 千字节(KB):1 Kb = 1024 Byte
- 兆字节(MB):1 Mb = 1024 Kb
- 吉字节(GB):1 Gb = 1024 Mb
- 太字节(TB): 1 Tb = 1024 Gb
关于“字节”和“位”,谁才是计算机中最小的单位呢?
解释一:内存中一个Bit一个Bit的操作,而程序交互设计为了一个Byte一个Byte的操作,对我们这些程序员而言就byte吧。
解释二:最小的存储单位是"位Bit",虽然一般程序语言中的数据类型最小单位为Byte,但是也通常提供”位运算“(C语言的教材里涉及了”位域“,虽然到现在我都不太懂)。
总结:这些零碎的知识点网上的解释各种各样,事后大家可以在查查资料,推荐《计算机组成原理》。
信息数据的表示系统:
- 二进制Bin 0~1组成
- 八进制Oct 0~7组成
- 十进制Dec 0~9组成
- 十六进制Hex 0~F组成
-
二进制 → \rightarrow →十进制
二进制转十进制可以通过多项式表示,以此类推,在这之后的“八进制”、“十六进制”同样如此,相信聪明的各位已经懂得举一反三了,就不再举例说明了。
例:将二进制1011转化为十进制表示
1011(Bin)
= 1* 2 3 2^3 23 + 0* 2 2 2^2 22 + 1* 2 1 2^1 21 + 1* 2 0 2^0 20
= 8 + 0 + 2 + 1