我们日常用的整数都是十进制数(Decimal),也就是我们通常所说的逢十进一。因为我们人类有十根手指,所以自然而然地会想到采用十进制的计数和计算方式。然而,现在几乎所有计算机都采用二进制数(Binary)编码方式,所以我们日常所用到的整数如果要用计算机来表示的话,需要表示成二进制的方式。
二进制数则是逢二进一,所以在整串数中只有0和1两种数字。比如,十进制数0,对应二进制为0;十进制数1,对应二进制数 1;十进制数2,对应二进制数10;十进制数3,对应二进制数11。因此,对于非负整数而言,二进制数第n位(n从0开始计)如果是1,那么就对应十进制数的2n,然后每个位计算得到的十进制数再依次相加得到最终十进制数的值。比如,一个5位二进制数10010,最低位为最右边的位,记为0号位,数值为0;最高位为最左边的位,记为4号位,数值为1。那么它所对应的十进制数为:24+21=18。因为该二进制数除了4号位和1号位为1之外,其余位都是0,因此0乘以2n肯定为0。图2-3为二进制数 10010换算成十进制数的方法图。
在计算机术语中,把二进制数中的某一位数又称为一个比特(bit)。比特这个单位对于计算机而言,在度量上是最小的单位。除了比特之外,还有字节(byte)这个术语。一个字节由8个比特构成。在某些单片机架构下还引入了半字节(nybble或 nibble)这个概念,表示4个比特。然后,还有字(word)这个术语。字在不同计算机架构下表示的含义不同。在x86架构下,一个字为2个字节;而在ARM等众多32位RISC体系结构下,一个字表示为4个字节。随着计算机带宽的提升,能被处理器一次处理的数据宽度也不断提升,因此出现了双字(double word)、四字(quad word)、八字(octa word)等概念。双字的宽度为2个字,四字宽度为4个字,所以它们在不同处理器体系结构下所占用的字节个数也会不同
我们上面介绍了非负整数的二进制表达方法,那么对于负数,二进制又该如何表达呢?在计算机中有原码和补码两种表示方法,而最为常用的是补码的表示方法。下面我们分别对原码和补码进行介绍。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !