为什么是表示这个数字相反数?

首先要把计算机当成外星人的样子,当我们人类在结绳计数的时候,使用0~9进行交流,但是这个外星人只能用0,1两个数。

在步入正题之前先问几个问题就是

32 位是几个字节 ?

二进制数 转换成十进制数是多少?

 二进制数 左移两位后,会变成原数的几倍?

补码形式表示的 8 位二进制数 ,用十进制数表示的话是多少?

补码形式表示的 8 位二进制数 ,用 16 位的二进制数表示的话是多少?

反转部分图形模式时,使用的是什么逻辑运算?

其实,每个人的答案都不一样,没必要完全按照标准答案,理解就可以了。

IC (模拟 IC 和数字 IC 两种,但在计算机领域常指数字IC)有几种不同的形状,有的像一条黑色蜈蚣,在其两侧有数个乃至数百个引脚;有的则像插花用的针盘,引脚在 IC 内部并排排列着。IC 的所有引脚,只有直流电压 0V 或 5V两个状态,CPU引脚有电流流过,值为1,没有就是0。也就是说,IC 的一个引脚,只能表示两个状态。

IC 的这个特性,决定了计算机的信息数据只能用二进制数来处理。由于 1 位(一个引脚)只能表示两个状态,所以二进制的计数方式就变成了。

计算机处理信息的最小单位——,就相当于二进制中的一位。位的英文 bit 是二进制数位(binary digit)的缩写。

二进制数的位数一般是 8 位、16 位、32 位……也就是 8 的倍数,这是因为计算机所处理的信息的基本单位是 8 位二进制数。8 位二进制数被称为一个字节。字节是最基本的信息计量单位。是最小单位,字节是基本单位。

用字节单位处理数据时,如果数字小于存储数据的字节数,那么高位上就用 0 填补。

程序中,即使是用十进制数和文字等记述信息,在编译后也会转换成二进制数的值,所以,程序运行时计算机内部处理的也是用二进制数表示的信息。

计算机内部所有信息都用二进制数处理

对于用二进制数表示的信息,计算机不会区分它是数值、文字,还是某种图片的模式等,而是根据编写程序的各位对计算机发出的指 示来进行信息的处理(运算)。

例如 这样的二进制数,既可以视为纯粹的数值作加法运算,也可以视为“‘”(单引号,single quotation)文字而显示在显示器上,或者视为■■□■■□□□这一图形模式印刷出来。具体进行何种处理,取决于程序的编写方式。

数据在计算机中数值一律是以补码的形式存储的。

二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位是 0 表示正数, 1 表示负数。

那么-1 用 8 位二进制数来表示的话是什么样的呢?可能很多人会认为“1 的二进制数是 ,因此-1 就是 ”,但这个答案是错的,正确答案是 。

补数就是用正数来表示负数

为什么是用补数之后,就可以表示负数了呢?

先谈一下互为相反数之间的运算。

那结果不为0的运算使用补码可以吗?

你要是不信的话,可以使用“负负得正”的方法进行运算,表示-5,他的补码是,如果绝对值相等的话,说明补码表示就是正确的。

低位要进行补 0,最高位或最低位溢出的数字,直接丢弃就可以了。

但是右移就没有那么简单了,一般分为逻辑右移和算术右移

符号扩充:就是保持值不变的前提下将其转换成 16 位和 32 位的二进制数

之前三个基本是算术运算,但是逻辑右移就不是

逻辑运算是指对二进制数各数字位的 0 和 1 分别进行处理的运算,包括逻辑非(NOT 运算)、逻辑与(AND 运算)、逻辑或(OR 运算)和逻辑异或(XOR 或 EOR运算 exclusive or)四种

掌握逻辑运算的窍门,就是要摒弃用二进制数表示数值这一想法。大家不要把二进制数表示的值当作是数值,而应该把它看作是图形或者开关上的 ON/OFF(1 是 ON,0 是 OFF)。逻辑运算的运算对象不是数值,因此不会出现进位的情况。

在步入正题之前先问几个问题就是

进制数 0.1,用十进制数表示的话是多少

用小数点后有 3 位的二进制数,能表示十进制数 0.625 吗?

 将小数分为符号、尾数、基数、指数 4 部分进行表现的形式称为什么

二进制数的基数是多少?

通过把 0 作为数值范围的中间值,从而在不使用符号位的情况下来表示负数的表示方法称为什么?

10011 这个二进制数,用十六进制数表示的话是多少

其实,每个人的答案都不一样,没必要完全按照标准答案,理解就可以了。

首先,先打破一下常识,就是我在学计算机之前一直都认为一件事就是计算机在计算方面应该是比人强的,结果也是准确的,但是实际上这是错误的想法。

首先,先试着将转成十进制11.1875

所以计算机会出现运算错误,是因为“有一些十进制数的小数无法转换成二进制数”,就像0.1,小数点后面即使有几百位也无法表示。

小数点后 4 位用二进制数表示的数值转换成十进制数是非连贯的(由图可知二进制小数只能表示十进制 0.5、0.25、0.125、0.0625 这四个二进制数小数点后面的位权组合)

上面的例子可以看出像 这样带小数点的表现形式,完全是纸面上的二进制数表现形式,在计算机内部是无法使用的。所以我们需要引入浮点数。

很多编程语言中都提供了两种表示小数的数据类型,分别是双精度浮点数(64 位 double类型)和单精度浮点数(32 位 float类型)来表示全体小数。

计算机内部使用的是二进制数,所以基数自然就是 2,一般不考虑,直接默认。

浮点数的内部构造(IEEE 的规定)

尾数部分用的是将小数点前面的值固定为 1 的正则表达式

正则表达式:按照特定的规则来表示数据的形式,

如果没有规则的话,表示一个小数会很多种,很不方便统一管理。所以规定“小数点前面是 0,小数点后面第 1 位不能是 0”这样的规则”表示小数。

单精度浮点数尾数部分的正则表达式

指数部分用的则是EXCESS 系统表现

EXCESS 系统表现:通过将指数部分表示范围的中间值设为 0,使得负数不需要用符号来表示。

下面举例来说明。假设有这样一个游戏,用1~13(A~K)的扑克牌来表示负数。这时,我们可以把中间的 7 这张牌当成 0。如果扑克牌 7 是 0,10 就表示+3,3 就表示-4。事实上,这个规则说的就是 EXCESS 系统。这种方法主要是为了表示负数时不使用符号位。

这里,符号部分为 0,指数部分为 ,尾数部分为 。

因 为 0.75 是正数,所以符号位是 0。指数部分的 是十进制数 126,用 EXCESS 系统表现就是-1(126-127 = -1)。根据正则表达式的规则,小数点前面的第 1 位是 1,因此尾数部分 实际上表示的是 1. 这个二进制数。将尾数部分的二进制数转换成十进制数,结果就是(1 ×2 的 0 次幂)+(1 ×2 的-1 次幂)= 1.5。因此,0- 这个单精度浮点数,表示的就是“+ 1.5 ×2 的-1 次幂”。2 的-1 次幂是 0.5,+ 1.5 × 0.5 = + 0.75。正好吻合,结果正确。

因为有时一些微小的偏差并不会造成什么问题。

eg:使用计算机设计工业制品。将 100 个长 0.1 毫米的零件连接起来后,其长度并非一定要是 10 毫米,10.000002 毫米也没有任何问题。

计算机在进行小数计算时可能会出错,但进行整数计算(只要不超过可处理的数值范围)时一定不会出现问题。进行小数的计算时可以暂时使用整数,然后再把计算结果用小数表示出来即可。

eg:将 0.1 相加 100 次可以转换为将 0.1 扩大 10 倍后再将 1 相加 100 次的计算,最后把结果除以 10 就可以了。

用4位二进制来表示一位十进制数,因此4位二进制数表示最大的十进制数9(1001),只取十六个数中的十个数。

如果有建议和看法,可以在文末留言,谢谢。

}
如图,是一个正方体纸盒展开图,请在三个正方形内分别填适当的数,使得折成正方体后相对面上的两个数是互为相反数,你能做到吗?若能,请直接在小正方形内填入数字,若不能,请说明理由.

考点提示:几何体的展开图

}

我要回帖

更多关于 什么数的相反数是它本身 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信