很多人在学习计算机以及编程时,都会接触到原码,反码和补码,今天来聊聊它们的表示方法以及为什么会有这几个概念。
一、机器数
说起原码,得先说起机器数和计算机的硬件结构,人们认为,一个完整功能的计算机主要由五大组成部分:运算器、控制器、存储器、输入设备和输出设备,其中担负着执行各种算术和逻辑运算操作的部件即运算器,而现代计算机芯片主要由数字集成电路搭建的,数字集成电路通过控制其算术逻辑单元中的逻辑门产生高、低电平的电信号,可实现逻辑上的0、1,即用高电平代表数字1,低电平代表数字0,这样,计算机就实现了从物理信号到逻辑信号的转变。
不过计算机只能表示0和1,而我们使用计算机是为了解决现实生活中的问题,因此为计算机使用二进制,可与现实中使用的十进制进行一一转换。我们将一个数在计算机中的二进制表示形式, 叫做这个数的机器数,而早期人们因为编码习惯及方便,将计算机中一个字节定义为8位,比如十进制中的5的机器数为00000101。
二、原码
与此同时,人们发现,使用0和1我们只能在计算机中表示正数,为了方便使用,规定机器数的第一位为符号