机器数与真值
由于计算机只能直接识别和处理用0,1两种状态表示的二进制形式的数据,所以在计算机中无法按人门日常的书写习惯
用正负号加绝对值来表示数值,而与数字一样,需要用二进制代码 0 和 1 来表示 正,负 号.这样,在计算机中表示带符号
的数值数据时,数符和数据均采用0,1进行了代码化.这种采用二进制表示形式的连同数符一起代码化了的数据,在 计算机
中统称为机器数或机器码.而与机器数对应的用正,负符号加绝对值来表示的实际数值称为真值.
机器数可分为无符号数和带符号数两种.无符号数是指计算机字长的所以二进制位均表示数值.带符号数是指机器数分
为符号和数值部分,且均用二进制代码表示.
例 : 设某机器的字长为 8 位,无符号整数在机器中表示形式为:
7 0
-------------
数 值
-------------
带符号整数在机器中的表示形式为:
7 6 0
-------------
符号 | 数值
-------------
分别写出机器数 10011001 作为无符号整数和带符号整数对应的真值.
解: 10011001 作为无符号整数时,对应的真值是 10011001(二进制) = 153(十进制) .
10011001 作为带符号整数时,其最高位的数码1代表符号"-",所以与机器数 10011001 对应的
真值是 - 0011001(二进制) = - 25(十进制).
综上所述,可得机器数的特点为:
(1) 数的符号采用二进制代码化,0代表"+',1代表"-".通常将符号的代码放在数据的最高位.
(2) 小数点本身是隐含的,不占用储存空间.
(3) 每个机器数数据所占的二进制位数受机器硬件规模的的限制,与机器字长有关.超过机器字长的数值要舍去.
例如,如果要将 x=+0.101100111在字长为8位的机器中中表示为一个单字长的数,则只能表示为01011001,最
底两位的两个1无法在机器中表示.
因为机器数的长度是由机器硬件规模规定的,所以机器数表示的数值是不连续的.例如,8位的二进制无符号数可以
表示256个整数: 00000000-11111111可表示0-255; 8位二进制带符号数中: 00000000-01111111可表示正整数0-127;
11111111-10000000 可表示负整数 -127-0;,共256个数,其中00000000表示+0,10000000表示-0.
在计算机中, 为了方便于带符号数的运算和处理,对带符号数的机器数有各种定义和表示方法,下面将接受带符号
数的原码,补码,反码和移码表示.
原 码
原码表示的一种简单,直观的机器数表示方法,其表示形式与真值的形式最为接近.原码表示规定机器数的最高位为符
号位,0表示整数,1表示负数,数值部分在符号位后面,并以绝对值形式给出.
1. 原 码 的 定 义 .
设 x 为二进制数,数值部分的位数为 n ,下式给出了 x 为纯小数 ±0.x1x2...xn 和 x 为纯整数 ±x1x2...xn时
的原码表示的定义.
纯 小 数 原 码 的 定 义 :
X ( 1 ≤ X < 1 )
[X]原 = ( X为纯小数 )
1 - X = 1 + |X| ( -1 < X ≤ 0)
纯 整 数 原 码 的 定 义 :
X ( 0 ≤ X < 2^n ) 2^n指2的n次方后面都这样表示
[X]原 = ( X为纯整数 )
2^n - X = 2^n + |X| ( -2^n < X ≤ 0)
根据定义可以知, X 的原码 [X原] 是一个 n+1 位的机器数 x0x1x2....xn ,其中 x0 为符号位, x1x2...xn 为数值
部分, n 为 X 数值的长度.
例 已知 X , 求 X 的原码[X原].
(1) X = +0.1010110 (2) X =-0.1010110 (3) X = +1010110 (4) X = -1010110
解: 根据原码的定义,可得
(1) [X原] = X = 0.1010110
(2) [X原] = 1-X = 1+0.1010110 = 101010110
(3) [X原] = X = 01010110
(4) [X原] = 2^7-X = 2^7 + 1010110 = 10000000+1010110 = 11010110
由例题可知 :
(1) [X原]的表示形式 x0x1x2...xn 为符号位加上 X 的绝对值. 当 X≥0 时,符号位 x0=0; X≤0 时,符号
位 x0=1.
(2) 当 X 为纯小数时,[X原]中的小数点默认在符号位 x0 数值最位 x1 之间; 当 X≥ 0时,[X原]=X;当X≤0
时,[X原] = 1+|X| ,既符号位加上X的小数部分的绝对值.
当 X 为纯整数时,[X原]中的小数点默认在数值位最底位 xn 之后; 当 X≥ 0时,[X原] = X; 当X≤0
时,[X原] = 2^n+|X| ,其中 2^n 是符号位的权值, 2^n+|X| 相当于使符号位为 1 .
(3) 将[X原]的符号取反,既可得到 [-X原] .
2. 原 码 中 0 的 表 示
根据定义式可知,在原码表示中,真值0有两种不同的表示形式,既 +0 和 -0 .
纯小数 +0 和 -0 的原码表示:
[+0原] = 0.00...0 [-0原] = 1.00...0
纯整数 +0 和 -0 的原码表示:
[+0原] = 00...0 [-0原] = 100...0
3. 原 码 的 左 移 和 右 移
对于二进制纯小数 x = 0.x1x2...xn 来讲, 在求 2x 时,只需要将 x1x2...xn 依次左移一位,移出的最底位的空格
位填 0 即可, 即 2x=x1.x2...xn0 . 当然,为了保证 x 左移后仍然是纯小数, 0.x1x2...xn 中的 x1 应为 0, 否则就
会大于1, 而不是纯小数了. 在求 1/2x 时, 只需要将 x1x2...xn 依次右移一位,移出的最高位的空格位填 0 即可, 即
1/2x=0.0x1x2...xn .如果仍然要保持 n 为数值, 则 x 右移后 ,将丢失最底位数字 xn .二进制纯整数的左,右移也可
以同样处理.
由于原码是在二进制真值的基础上增加了符号的机器数,根据二进制数的移位规则个原码的定义,可知原码的移位规
则是: 符号位不变,数值部分左移或右移,移出的空位填 0 .
例: 已知[X原],求[2X原],[1/2X原].
(1) [X原] = 0.0101001 (2)[X原] = 10011010
解: (1) [2X原] = 0.1010010 左移后,符号位保持不变,最高位移出,最低位填 0 .
[1/2X原] = 0.0010100 右移后,符号位保持不变,最高位填 0,末尾的1移出.
(2) [2X原] = 10110100
[1/2X原] = 10001101
在原码的左移过程中,主要不要将高位的有效位数值育雏,否则将回出错.
4. 原 码 的 特 点
(1)原码表示直观,易懂,与真值的转化容易.
(2)原码表示中的 0 有两种不同的表示形式,给使用带来了不便.
通常 0 的原码用 [+0原] 表示,若在计算过程中出现了[-0原] ,则需要用硬件将 [-0原] 变为 [+0原] .
(3)原码表示加减运算复杂.
利用原码进行两次相加运算时,首先要判别两数的符号,若同号则做加法,如异号则做减法.在利用原码进行相减时 ,不
仅要判别两数绝对值的符号,使得同号相减,异号相加;还要判别两数绝对值的大小,用绝对值大的数减去绝对值小的数,取
取绝对值大的数的符号为结果符号. 可见原码表示不便于实现加减运算.
分享到:
相关推荐
本次课程设计主要关注的是机器数的真值还原以及几种基本的数值运算,包括定点小数的运算和浮点数的运算。以下是对这些知识点的详细阐述: 一、机器数的真值还原 机器数是指在计算机内部表示的数值,它包含了数值...
学习原码、反码和补码之前,需要先了解机器数和真值的概念 在学习原码、反码和补码之前,需要先了解机器数和真值的概念。这是因为机器数和真值是计算机中表示数值的基础。 机器数是指一个数在计算机中的二进制表示...
"真值和机器数概念" 计算机中数据的表示和存储是通过数字逻辑电路完成的,而数字逻辑电路只处理二进制数据代码。因此,计算机中的数据信息表示方法和存储方式都要用到计算机中的进位计数制。 真值和机器数概念是...
- 通过“转换”按钮,可以在真值与浮点机器数之间进行转换。 4. **定点机器数的运算**: - 支持加、减、乘、除四种基本运算,适用于定点小数和定点整数。 - 用户可以输入两个二进制真值,软件会根据选定的运算...
本文主要探讨了机器数、真值以及原码、反码和补码这三种在计算机中表示有符号整数的关键概念。 首先,机器数是计算机中用于表示数值的二进制形式,包括符号位。在有符号数中,最高位通常作为符号位,0代表正数,1...
实现机器数的真值还原(定点整数)、定点整数的单符号位补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。 (1)系统进入(主)窗体的设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要...
1. **机器数与真值**: - **机器数**是指将一个数值包括其符号位一并表示成二进制形式的数。例如,+38的机器数是0010110,-38的机器数是1010110。这里的符号位决定数值的正负,0代表正,1代表负。 - **真值**是...
无符号数的机器数与真值的关系是:真值 = 机器数 - 2^n,如果机器数大于等于 2^(n-1) thì 真值为负数,否则真值为正数。 符号数的表示法有四种:原码表示法、补码表示法、反码表示法和移码表示法。原码表示法是...
本资源主要涉及单片机应用技术的基本概念、单片机的应用领域、单片机系统的开发过程、数制转换、二进制补码表示、机器数与真值的相互转换、微型计算机的组成部分、总线结构、存储器的地址线与存储容量的关系等知识点...
因此,需要将十进制数转换为二进制数,以便计算机能够正确地进行运算。 二、C语言实现进制转换 下面是一个使用C语言实现进制转换的示例代码: ```c #include #include void trans10(long m, int base, char *p) {...
本次课程设计聚焦于数据运算,特别是机器数的真值还原、定点整数的运算以及浮点数的处理。通过"Calculate.zip"中的程序,我们将深入探讨这些核心概念。 首先,机器数的真值还原是指将二进制表示的数字转换为其实际...
本文将对《微机原理与接口技术》课后习题答案进行详细解释,涵盖二进制数存储、数制之间的转换、组合型 BCD 码和非组合型 BCD 码、ASCII 码、机器数与真值、原码、反码和补码、微型计算机系统的硬件组成等知识点。...
首先,让我们谈谈“机器数的真值还原”,这是在计算机中表示数字的基本方式。机器数是二进制形式的数字,它可能包含正数、负数和零。在计算机中,数值通常以不同的编码方式表示,如原码、反码和补码。原码是直接用二...
本文将深入探讨机器数与真值的概念,这是理解计算机如何存储和处理数值的关键。 机器数是数值在计算机内部的二进制表示形式,它由一系列0和1组成。这些0和1不仅代表数值的大小,还可能包含符号信息。真值则是这些...
计算机组成原理:学习指导与习题解答
七、机器数与真值 * 符号“数码化”的了数称为机器数;用“0”表达正数符号,用“1”表达负数符号 * 符号没有数码化的数称为数的真值 八、原码、补码 * 正数:其补码与原码相似 * 负数:其补码符号位为1,其他...
13. 机器数与真值: - 机器数是计算机中用于表示数值的二进制形式,它包含了符号位,如正数的机器数直接表示数值,负数的机器数用补码表示。 - 真值是指不考虑符号位的数值本身,例如,机器数10011011B的真值是75...
4. **机器数与真值**:机器数是数在计算机内部的二进制形式,而真值是实际表示的数值,包括符号和绝对值。例如,机器数01011对应的真值是+5,机器数11011对应的是-5。 5. **无符号数与符号数**:无符号数仅表示正数...