天天看点

二进制基础,有符号数,无符号数,原码,反码,补码

什么叫二进制?

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。

二进制的优点

数字装置简单可靠,所用元件少;

只有两个数码0和1,因此它的每一位数都可用任何具有两个不同稳定状态的元件来表示;

基本运算规则简单,运算操作方便。

十进制是啥呢?

600,3/5,-7.99……看着这些耳熟能详的数字,你有没有想太多呢?其实这都是全世界通用的十进制,即1.满十进一,满二十进二,以此类推……2.按权展开,第一位权为100,第二位101……以此类推,第N位10^(N-1),该数的数值等于每位位的数值*该位对应的权值之和。

二进制与十进制的计算方法

#口诀:除二取余,逆序

举个例子:

二进制基础,有符号数,无符号数,原码,反码,补码

小数

#口诀:乘二取整,顺序

举个例子:

二进制基础,有符号数,无符号数,原码,反码,补码

有符号数和无符号数

有符号数

有符号数是针对二进制来讲的。用最高位作为符号位,“0"代表”+",“1"代表”-" ;其余数位用作数值位,代表数值。

有符号数的表示:计算机中的数据用二进制表示,数的符号也只能用0/1表示。一般用最高有效位(MSB)来表示数的符号,正数用0表示,负数用1表示。

如何区分有符号数和无符号数呢?

用0和1作为第一位来区分,0表示正数,1表示负数

举个例子:

二进制基础,有符号数,无符号数,原码,反码,补码

数的机器码表示

原码:

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

补码:

补码(two’s complement) 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。

反码:

反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。

为什么要引入补码?
二进制基础,有符号数,无符号数,原码,反码,补码

于是又引入了反码:

三者之间的转换方法:

二进制基础,有符号数,无符号数,原码,反码,补码

举个例子:

二进制基础,有符号数,无符号数,原码,反码,补码
再举个小数的例子:
二进制基础,有符号数,无符号数,原码,反码,补码

总结

直接上图:

二进制基础,有符号数,无符号数,原码,反码,补码

继续阅读