计算机存储为什么用二进制,计算机为什么使用二进制存储数据?

这跟计算机的硬件有关,早期计算机的是由大量电子管,继电器,各种电气元件组成的,用电功率相当大,每小时用电约为140千瓦,有一定计算机知识的大概都知道其体积也相当庞大,并且想让计算机存储数据就要保持计算机一直处于开机通电状态,操作非常困难,维护也非常困难,而现在的电脑已经发展的已经非常便捷,并且运算能力非常强大,但是存储信息的原理并没有大的改变。

现代计算机存储信息用的都是硬盘,是由成千上万个晶体管组成的,但是比起早期计算机的各种元件,其体积已经微乎其微了,晶体管有以一个很重要的特性就是单向导电,这样就形成了电路门,有通电和不通电两种状态,为了更好的表示并利用这两种状态,人们把其定义为true和false,也可以表示为no和yes,或者0和1,只是一种表达形式,不同的场合用法不同而已,这样n个电路门通过不同的连接方式就有无数个不同的组合,就可以表示各种不同的信息,这就是计算机为什么使用二进制来存储数据。

拿编程语言里的byte这个数据类型举例,有计算机基础的都知道byte数据类型的大小范围是-128—127,并且占一个字节的大小,但这是为什么呢,通常情况下一个字节等于8位,8位就相当于硬件里的电路门,而一个8位的电路门只能有256种排列组合,表示数字的话可以表示0—255之间的数,用二进制表示的话如下图:

可以看出来二进制的 0000 0000 到 0111 1111 和 1000 0000 到 1111 1111 刚好都是128个数,在电路们里面没有正负,为了能表示数学逻辑里的正负,提高人机交互性,所以人为把最高位第8位的 0和1定义为正负符号,这样前一半表示十进制的 0 到 127,后一半表示十进制的 -1到 -128,所以后一半 1000 0000 到 1111 1111 按照大小排列是其的反向排列,通常我们叫其补码,并且这样排列运算起来也很方便例如十进制的-1+1=0,二进制则表示为1111 1111 + 0000 0001正好也等于0。

其他基本数据类型也是同样的原理。

你可能感兴趣的:(计算机存储为什么用二进制)