【刷题】计算机组成原理--数据的表示及其运算(转)

原文链接:https://blog.csdn.net/redRnt/article/details/83384255

知识点:

一、数的补码  原码  移码表示

无符号数与有符号数

无符号数,即没有正负号的数,是数的绝对值,在其面前添上正负号,便成了有符号的数。计算机的数均存放在寄存器中,通常我们称寄存器的位数为机器字长,当存放有符号数的时候,需要占用以为存放符合位,所有,如若机器字长为16位,那么: - 无符号数可表示的范围为 0 — 2^(16) -1 - 有符号数可表示的范围为 -2^15 — 2^(15) - 1

15次方是因为符号位占用了一位。 那么计算机如何表示有符号数呢?我们规定,用0表示正号,用1表示负号,这样符号也就被数字化了,并规定放在有效数据之前,例如: +0.1011 在机器中表示为0(小数点位置)1011 -1100 在机器中表示为1,1100(小数点位置) 为了方便区分手写的数和将符号数字化的数,我们把前者称为真值,后者称为机器数。即 -1100(真值) -> 11100(机器数) 将符号数字化以后带来了新的问题,运算时,符号位是否参与运算,如果是,那么如何处理?为了处理好这些问题,于是就引入了原码,补码,反码和移码等编码方式。

原码:

原码,又称带符号的绝对值表示,符号位为0表示正,为1表示负。用大白话来讲,就是直接将数值部分写成二进制数然后前面添上0或者1,用来表示正负号。

【刷题】计算机组成原理--数据的表示及其运算(转)

【刷题】计算机组成原理--数据的表示及其运算(转)

其实上面的公式我们只需要了解即可,实际的转换很简单 比如

X = +1110时 [X]原 = 0,1110

X = -1110时 [X]原 = 1,1110 (逗号只是为了区分符号位实际不存在)

X = 0.1101时 [X]原 = 0.1101

X = -0.1101时 [X]原 = 1,1110(注意不是10.1101,因为0并不是有效数据位)。

注意: 1. 若字长为n+1,那么原码整数的表示范围为:

【刷题】计算机组成原理--数据的表示及其运算(转)

2. 原码中0的表示方式有两种:

【刷题】计算机组成原理--数据的表示及其运算(转)

0的原码表示方法不唯一

补码:

计算机中存放的数值方式大多数是用补码存放,计算(尤其是减法做加法运算时)时也通常采用补码运算方式,因此要对补码非常敏感。

【刷题】计算机组成原理--数据的表示及其运算(转)

【刷题】计算机组成原理--数据的表示及其运算(转)

对于纯整数:

【刷题】计算机组成原理--数据的表示及其运算(转)

对于纯小数:

【刷题】计算机组成原理--数据的表示及其运算(转)

而对于0而言,

【刷题】计算机组成原理--数据的表示及其运算(转)

反码

反码,通常用来由原码求补码或者由补码求原码的过渡环节。 我们先看看数学定义:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfpwj.html