机器数表示方法

合集下载

计算机中数的表示

计算机中数的表示

我们日常使用的数据分成数值型数据和非数值型数据两大类,数值型数据采用十进制数制表示,如26.77、-19、470等,而非数值型数据一般是一些图型符号表示,如“ABC”、“语言”、“@&%☆⊕”等。

而现代电子计算机的数字电路只能表示开/关(或高/低)两个稳定的基本状态,所以在计算机世界中,任何数据都只能用两个基本状态来表示,用两个基本状态来表示数据的方法称为数的二进制表示。

数值型数据可以直接用二进制数表示,而非数值型数据需经过编码后转换成二进制数据表示。

在查看CPU寄存器中的数据或内容中的数据与指令时常以十六进制数制形式显示。

一、数值数据的表示1.数制数制(数的进制)也称为数字系统,每种数制都有一个基数,也就是单个数字能表示的在数字系统中一个数就是由某种进制可用数字符号组成的数字串,一个n位的数其一般格式为:D n-1D n-2…2D1D0,其中D是某一进制中的可用数字,脚标是该数字在数据中的数位序号,数位序号从一个数的整数部分的最低位以0开始编号,向左依次为0、1、2、…直到整数的最高位,向右为-1、-2、-3、…直到小数的最低位。

一个数字位于数据的不同位置其表示的大小是不同的,这种不同称为数位的权,数位的权等于基数的数位序号次方,记作b i,b是进制的基,i是数位序号。

一个数可以展开为位权表示法,或称按权展开求和式,如下所示。

D n-1D n-2…2D1D0= D n-1×b n-1+D n-2×b n-2+…+D1×b1+D0×b0。

(1)二进制数二进制数字系统中记数采用0和1两个符号来表示数据,基本运算规则是“逢二进一”。

一个二进制形式的数据就由0和1两个符号组成的位串,如10011011、-1101.101。

组成地进制数的每一个数位称为一个比特(bit)。

(2)十进制数十进制数字系统中记数采用0~9十个数字符号来表示数据,基本运算规则是“逢十进一”。

第二章数据的机器表示

第二章数据的机器表示

例、N1 = 01001,表示9;N2 = 11001,表示25。
字长为n位的无符号数xn-1…x2x1x0有以下特性:
典型值
真值
代码序列
最大值
2n-1
最小非零正数
1
最小值
0
11…11 00…01 00…00
无符号定点数值的表示范围为:0~2n-1,分辨率为1。
14
无符号定点数
例、以8位无符号数为例,说明其最大值为(28-1)。
对于0,有两种形式: [+0]原 = 0.00…0, [ -0]原 = 1.00…0
5
原码表示(续)
若定点整数的原码形式为xn-1…x2x1x0 ,定点整数的原码定义:
[x]原=
X 2n-1 + |X|
0 ≤X<2n-1 -2n-1<X≤0
例如,x=+1011,则[x]原=00001011 x= -1011,则[x]原=10001011
27
(4)浮点数的表示范围和精度
设浮点数的阶码m+1位,含一位阶符,补码表示,以 2为底;尾数n+1位,含一位数符,补码表示,规格 化。其典型值如下:
典型值
浮点数代码
真值
绝对值最大负数 绝对值最小负数 非零最小正数 最大正数
01…1,1.00…0 10…0,1.01…1 10…0,0.10…0 01…1,0.1…1
正数补码与原码相同,不需要转换。 负数补码转换为原码时,对补码再求补码,实现逆转换,即对
补码再求补码结果为原码;再由原码转换为真值。
关于补码表示的结论:
补码的最高位为符号位,0为正数、1为负数,符号位是数值的 一部分,可以和数值位一起参与运算,不需要单独处理。

机器数的三种表示形式

机器数的三种表示形式

机器数的三种表示形式计算机是一种由二进制代码控制的高科技设备,它可以对大量的数据进行快速的处理,被广泛应用于各个领域。

由于它的功能强大,不仅可以完成大量的计算工作,而且还可以替代人类完成一些复杂的任务。

这就使得人们在操作计算机时,需要一种方法来表示计算机数量。

机器数的三种表示形式分别是十进制、二进制和八进制。

其中,十进制是最常用的表示形式,十进制数采用十个数字0-9来表示,每一位数字代表一个十进制位,从右往左以10的次幂递增,最高位代表10的零次幂,即1。

例如,十进制的数字123表示的就是1×10的二次幂,加上2×10的一次幂,再加上3×10的零次幂,所以十进制的数字123就表示为100+20+3。

二进制是一种基于2的计数系统,它的基本单位是二进制位,由0和1组成,每一位数字代表一个二进制位,从右往左以2的次幂递增,最高位代表2的零次幂,即1。

例如,二进制的数字1011表示的就是1×2的三次幂,加上0×2的二次幂,再加上1×2的一次幂,最后再加上1×2的零次幂,所以二进制的数字1011就表示为8+0+2+1=11。

八进制是一种基于8的计数系统,它的基本单位是八进制位,由0到7组成,每一位数字代表一个八进制位,从右往左以8的次幂递增,最高位代表8的零次幂,即1。

例如,八进制的数字734表示的就是7×8的二次幂,加上3×8的一次幂,再加上4×8的零次幂,所以八进制的数字734就表示为448+24+4=476.以上就是机器数的三种表示形式:十进制、二进制和八进制。

它们每种都有自己的特点,十进制是最常用的表示形式,二进制和八进制则更高效。

由于这三种表示形式的不同,在使用计算机时,我们需要正确地使用它们,以达到计算机应用的最佳效果。

计算机机器数的三种表示方法

计算机机器数的三种表示方法

计算机机器数的三种表示方法计算机中的机器数可以通过不同的表示方法来表示。

下面将介绍计算机机器数的三种常见表示方法:原码、反码和补码。

1. 原码表示法:原码是机器数的最简单表示方法。

原码的表示方法是将一个数值的绝对值转换为二进制表示,然后在最高位上加上符号位,0代表正数,1代表负数。

例如,对于十进制数-5,它的原码表示为10000101,其中最高位1表示负数,其余位表示数值的绝对值。

原码表示法的优点是简单明了,符号位和数值部分可以直接进行运算,但是它也存在一些问题。

首先,原码的加法运算需要分别对符号位和数值部分进行处理,不够高效。

其次,原码中存在两个零:+0和-0,导致运算结果不唯一。

2. 反码表示法:为了解决原码运算不方便的问题,人们引入了反码表示法。

在反码表示法中,正数的反码与原码相同,负数的反码是对原码符号位之后的数值部分按位取反。

例如,对于十进制数-5,它的反码表示为11111010,其中最高位1表示负数,其余位是对原码数值部分按位取反得到的。

反码表示法解决了原码运算的问题,可以直接对符号位和数值部分进行运算,但是它仍然存在一个问题:+0和-0的表示仍然不唯一。

3. 补码表示法:为了解决反码表示法的+0和-0不唯一的问题,人们引入了补码表示法。

在补码表示法中,正数的补码与原码相同,负数的补码是对原码符号位之后的数值部分按位取反,然后再加1。

例如,对于十进制数-5,它的补码表示为11111011,其中最高位1表示负数,其余位是对原码数值部分按位取反得到的,然后再加1。

补码表示法是计算机中最常用的表示方法。

它解决了原码和反码表示法中+0和-0不唯一的问题,同时还能够简化负数的加法运算。

在补码表示法中,正数和负数的加法运算可以统一处理,只需要进行简单的二进制加法即可。

总结:计算机中的机器数可以通过不同的表示方法来表示,其中包括原码、反码和补码。

原码是最简单的表示方法,直接将数值的绝对值转换为二进制表示,并在最高位上加上符号位。

计算机中数的表示

计算机中数的表示

1、求+65和-48的原码、反码和补码。
2、已知:某有符号整数的补码为1101 0101,求该数的原码。
例如: X=+81,则X的原码是01010001; Y=-81,则Y的原码是11010001;
(2)反码
定义: 正数的反码和原码相同,负数的反码是对该 数的原码除符号位外各位取反,即“0”变 “1”,“1”变“0”。
例如: X=+81,则X的反码是01010001; Y=则Y的反码是10101110;
这种连同符号位一起数字化了的数称为机器数。
(2)真值
由机器数所表示的实际值称为真值。
机器数 00101001 10101001
十进制真值 +41 -41
二进制真值 +0101001 -0101001
(1)原码
定义: 正数的符号位用0表示,负数的符号位用1表示, 数值部分用二进制形式表示,称为该数的原码。
(3)补码
定义: 正数的补码与原码相同,负数的补码是 对该数的原码除符号外各位取反, 然后加1,即反码加1。
例如: X=+81,则X的补码是01010001; Y=-81,则Y的补码是10101111;
机器数与真值 机器数的表示 正数:原码=反码=补码 负数:原码符号位为1,数值部分等于真值;
反码符号位为1,数值部分取反; 补码符号位为1,数值部分取反后加1。
童辉群
机器数与真值 机器数的表示方法 1. 原码 2. 反码 3. 补码
计算机处理的信息有多种形式,例如数字、字 符、图形、图像、音频、视频等,然而,这些 信息在计算机中都以二进制的形式表示,那么 这些不同的形式的信息是如何用二进制数表示 的呢?
(1)机器数

第三章__机器数的表示

第三章__机器数的表示
3. 浮点数的表示
3) 浮点数的模4补码表示如何判断溢出
溢出:当尾数用模4补码表示时,符号位为01 或10时,表示尾数溢出。尾数溢出不能说明 浮点数溢出,要进行判断。 判断溢出的步骤及例题如P39 讲:
00
11 00
001
001 111
01
10 01
0000
1000 0100
右规处理 右规处理 右规处理
当x ≥0时, x0=0,则x= [x]补 当x ≤0时, x0=1,则x= -(2n –1-[x]补+1) 结论:X为正时,真值等于其补码 X为负时,数值等于其补码按位取反加1
例:P42例3.19
讲:n=8, x0=1 x= -(28 –1-[x]补+1)=-1100110
规格化:表示尾数时对应真值的小数点后第一位应 是1 综上:模4补码规格化形式为形如00.1·或11.0·的样 · · · · 式 非规格化形式如00.0 ·或11.1 ·,则可用左规方法 · · · · 规格化处理
00 010 00 0100
左规处理
00
001
00
1000
计算机组成原理
第三节 变形码、移码和浮点数表示
2) 负数的反码 真值x=-11010,则[x]反=[-11010]反=100101 即: [x]反=2n-1+x (-2n-1 <x< 0) 3) 0的反码 正0的反码 [x]反=[+00000]反=000000 负0的反码 [x]反=[-00000]反=111111
计算机组成原理
第二节 定点数的原码、反码和补码
第三章 机器数的表示
1. 机器数的特点
2. 定点数的原码、反码和补码
3. 变形码、移码和浮点数表示

机器中符号数表示方法与基础知识

机器中符号数表示方法与基础知识
机器中的符号数的表示方 法和基础知识
2013-08
1
真值就是利用正负号表示数的符号,数值部分位数的绝对值。
例如:正数 1234
+1234
正数 100H
+100H
正数 01011010B
+01011010B
负数 200 负数 32H 负数 01100100B
-200 -32H -01100100B
2013-08
[+127]反=[+127]原=01111111B
[+8]反=[+8]原=01000B
201[3+-01827]反=[+127]原=11111B
10
负数的反码是在原码基础上,符号位不变(仍为1),数值位 按位取反。例如,当机器字长n=8时:
[-0]反=(28-1)-0=11111111B [-127]反=(28-1)-127=10000000B
[+32767]原=0111 1111 1111 1111B
[2-03132-07867]原=1111 1111 1111 1111B
7
可以看出
-127
+127 是真值
8位二进制原码表示数的范围为 -127 + 127,
16位二进制原码表示数的范围为 -32767 + 32767;
n位原码的数据表示范围 : -( 2n-1-1 )~ +(2n-1-1)
因此,计算机中通常使用补码进行加减运算,这样就引 入了反码表示法和补码表示法。
2013-08
9
3. 反码
设数x的反码记作[x]反,如机器字长为n,则反码定义如下:
[x]反
x

机器数的表示方法

机器数的表示方法

机器数的表示方法机器数是计算机中用来表示数字的一种编码方式,它是计算机能直接识别和处理的数值形式。

机器数的表示方法有多种,常见的有原码、反码和补码等。

原码是机器数最简单的表示方法,即用最高位表示符号位,其余位表示数值。

正数的原码与其真值相同,负数的原码则将符号位设为1,其余位表示该负数的绝对值。

然而,原码的表示方法存在一个问题,即加法和减法运算不够方便。

为了解决这个问题,人们提出了反码的表示方法。

反码的表示方法是在原码的基础上,对负数的除符号位外的每一位取反,即0变为1,1变为0。

这样,负数的反码表示了它的绝对值的补码。

虽然反码解决了加法和减法运算的问题,但是在计算机中,仍然存在一个问题,即0有两种表示形式,+0和-0。

为了解决这个问题,人们提出了补码的表示方法。

补码的表示方法是在反码的基础上,对负数的反码加1。

这样,负数的补码表示了它的绝对值的补码加1。

补码的表示方法不仅解决了0的表示问题,而且还使得计算机能够进行更复杂的运算,如乘法和除法。

此外,补码的表示方法还具有一个优点,即负数的补码与其真值相对应,方便计算机进行数值的加减运算。

除了原码、反码和补码,还有其他的机器数表示方法,如移码和浮点数等。

移码是一种将机器数的小数点向左或向右移动一定位数的表示方法,可以用来表示大数或小数。

浮点数是一种用科学计数法表示的机器数,由一个尾数和一个指数组成,可以表示非常大或非常小的数值。

总的来说,机器数的表示方法有多种,每种方法都有其特点和适用范围。

在计算机中,常用的表示方法是补码,它不仅能表示正数和负数,还能进行复杂的运算。

其他的表示方法如移码和浮点数则适用于特定的场景,能够表示更大范围的数值。

无论采用哪种表示方法,都需要根据具体的应用需求来选择,以确保计算机能够正确处理和存储数字。

机器数与它的三种表示法

机器数与它的三种表示法
补码是让数的符号位也作为数的一部分参与运算,使实际操作仅与指令规定的操作性质有关,而与数的符号无关。即确定一个数作模以后,我们将某数X对模M的补数称为X的补码,表示为[X]补=M+X (Mod M),正数的补码与原码一样,但是是舍去了模。如x=0.101,[x]补=0.101 (mod 2),对于负数,补码的尾数与原码不同,其符号位在形式上与原码相同,也用1表示负数,但这个1是通过模获得的,也是数值的一部分,可与尾数一起参与运算,如x=-0.101,则[x]补=2+(-0.101)=1.011 (mod 2)。
机器数与它的三种表示法
钟乐海
1995-09-29
机器数计算机中的表示方法有三种,即原码、反码和补码,最常用的是原码和补码两种,原码表示法比较直观,补码运算则比较简单。下面分别从其定义出发来理解这三种表示法及其关系。
原码表示法是一种直观的机器数表示法,用最高位表示符号,符号位为0表示该数为正,符号位为1表示该数为负,有效数值部分用二进制绝对值表示。如真值为+0.1010和-1100其原友码为0.1010和11100。用原码作乘除法时,可取其绝对值(尾数)直接运算,再按同号相乘除为正,异号相乘除结果为负的原则单独处理符号,但对常用的加减法运算,却极不方便,由此引进补码的概念。
对补码的求值,一般是通过原码转化而来。对正数,[x]原=[x]补,对负数,是符号位保持不变,尾数各位变反,然后末位加1,即“变反加1”。如:[x]原=1.1010,则[x]补=1.0110。
在补码和原码的转换中,又产生一种机器数的表示法,这就是仅对尾数逐位取反而不在末位加1,这种数的表示法称反码表示法,它可以达到化减为加的目的。正数反码与原码、补码相同,负数反码的符号位为1,其尾数可由其绝对质逐位反而得,符号位也参与计算。具体表示为:x=0.101,x反=0.101;x=-0.101,x反=1.010。

机器数的表示与运算

机器数的表示与运算
6
反码
对一个机器数X: 若X>0
[X]反=[X]原
若X<0
[X]反= 对应原码的符号位不变,数值部分按位求反
7
[例]
X= -52 = -0110100 [X]原=1 0110100 [X]反=1 10010 Nhomakorabea18
0的反码:
[+0]反 =00000000 [-0]反 =11111111 即:数0的反码也不是唯一的。
9
补码
定义: 若X>0
[X]补= [X]反= [X]原
若X<0
[X]补= [X]反+1
10
[例]
X=-52= -0110100
[X]原=10110100 [X]反=11001011 [X]补= [X]反+1=11001100
11
0的补码:
[+0]补= [+0]原=00000000 [-0]补= [-0]反+1=11111111+1
机器数的表示与运算
1. 机器数
计算机中的数称为机器数 构成:
符号位 + 真值
“0” “1”
表示正 表示负
2
[例]
+52 = +0110100 = 0 0110100
符号位 真值
-52 = -0110100 = 1 0110100
符号位 真值
3
2. 机器数的表示
机器数的表示方法:
原码 反码 补码
4
原码
最高位为符号位,其余为真值部分。
“0”表示正 “1”表示负
优点:
真值和其原码表示之间的对应关系简单,容易理解;
缺点:
计算机中用原码进行加减运算比较困难 0的表示不唯一。

数在计算机中的表示方法及编码

数在计算机中的表示方法及编码

数在计算机中的表示方法及编码计算机中的信息不仅有数据,还有字符、命令,其中数据还有大与小、正数与负数之分。

计算机是如何用“0”或“1”,来表示这些信息的呢?1.计算机中数的表示形式在计算机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。

例如:N1=+1011,N2=-1011。

由于MCS—51为8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮—个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001011,其中最高位为符号值,其余位为数值位。

最高位为0表示是正数,最高位为1表示是负数。

这种计算机用来表示数的形式叫机器数。

而把对应于该机器数的算术值叫真值。

值得注意的是:机器数和真值的面向对象不同,机器数面向计算机,真值面向用户,机器数不同于真值。

但真值可以用机器数来表示。

机器数是计算机中表示数的基本方法,机器数通常有原码、反码和补码三种形式。

(1)原码表示方法用8位二进制数表示数的原码时,最高位为数的符号位,其余7位为数值位。

例如:真值为+120和-120的原码形式=01111000[+120]原=11111000[-120]原对于零,可以认为它是正零,也可以认为它是负零,所以零的原码有两种表示形式:[+0]=00000000原[-0]=10000000原8位二进制数原码表示范围为:11111111~01111111,即-127~+127。

(2)反码表示方法在反码表示方法中,正数的反码与原码相同,负数的反码由它对应原码除符号位之外,其余各位按位取反得到。

例如:[+120]反=[+120]原=01111000[-120]反=10000111零的反码有两种表示方式,即:[+0]反=00000000[-0]反=111111118位二进制数反码表示范围为:11111111~01111111,即-127~+127。

计算机中数的表示

计算机中数的表示

计算机中数的表示——酸奶不错计算机中的数及其符号都用二进制表示,称为机器数。

一般用最高有效位表示数的符号,0表示正数,1表示负数。

机器数可以用不同的码制来表示,常用的有原码、反码和补码,大多数机器采用补码表示,如80x86。

正数的原码、反码和补码都一样。

负数的补码表示要经过三个步骤: 先写出与负数对应的正数的原码,然后按位求反,最后末位加一。

如下所示:N 位补码数的表数范围: 首先明确一点,0的补码表示是唯一的:-0的补码=11111111+1=00000000一个数的补码表示有两种,符号位为0或符号位为1,因为0的补码表示唯一(0既不是正数也不是负数,0和正数合称非负数),它占了符号位为0所能表达的数的范围一个位置,所以正数的最大值比负数绝对值的最大值小1 。

举个例子,用3位来表示有符号数:补码: 100 101 110 111 000 001 010 011十进制:-4 -3 -2 -1 0 1 2 3在某些情况下,要处理的数全是正数,此时再保留符号位就没有意义了,我们可以把最高有效位也作为数值处理,这样的数称为无符号整数。

计算机中最常用的无符号整数是表示地址的数。

小结,N 位补码数表示的数的范围为,带符号数:-2n-1 ~ 2n-1-1,无符号数:0~2n -1。

符号扩展:一个数从位数较少扩展到位数较多。

对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展则应该在前面补1。

机器字长8位: [+46]补=0010 1110 [-46]补=1101 0010 扩展到16位: [+46]补=0000 0000 0010 1110 [-46]补=1111 1111 1101 0010。

什么是原码、反码、补码

什么是原码、反码、补码

[-1] = [10000001]原 = [11111110]反 = [11111111]补
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
三. 为何要使用原码, 反码和补码
在开始深入学习前, 我的学习建议是先"死记硬背"上面的原码, 反码和补码的表示方式以及计算方法.
1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原
这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:
于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码:
计算十进制的表达式: 1-1=0
1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2
如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.
一. 机器数和真值
在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.
1、机器数
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.
比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。
x mod y = x - y L x / y J

计算机中数值的三种表示方法详解:原码,反码, 补码

计算机中数值的三种表示方法详解:原码,反码, 补码

计算机中数值的三种表示方法详解原码,反码,补码最近在学习软件评测师的知识,其中涉及到计算机的原码, 反码和补码等知识. 通过网上查阅资料,进行了深入学习,分享给大家。

本文主要从以下几点进行介绍:如何计算原码,反码,补码?为何要使用反码和补码?希望本文对大家学习计算机基础有所帮助一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。

机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数+3 ,计算机字长为8位,转换成二进制就是00000011。

如果是-3 ,就是10000011 。

那么,这里的00000011 和10000011 就是机器数。

2、真值因为第一位是符号位,所以机器数的形式值就不等于真正的数值。

例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3 而不是形式值131(10000011转换成十进制等于131)。

所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。

例:0000 0001的真值= +000 0001 = +1,1000 0001的真值= –000 0001 = –1二. 原码, 反码, 补码的基础概念和计算方法.计算机中的符号数有三种表示方法,即原码、反码和补码。

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是: [1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.2. 反码反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.3. 补码补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)[+1] = [00000001]原 = [00000001]反 = [00000001]补[-1] = [10000001]原 = [11111110]反 = [11111111]补对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.简单总结以下,反码和补码的表示方式以及计算方法.对于正数,三种编码方式的结果都相同:正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同。

计算机中如何表示数字(1-6讲)

计算机中如何表示数字(1-6讲)

计算机中如何表示数字-01机器数与真值机器数就是数值在计算机中的表示形式,真值则是它在现实中的实际数值。

可以这样简单的理解。

因为计算机只能直接识别和处理用0、1两种状态的二进制形式的数据,所以在计算机中无法按人们的日常书写习惯用正、负符号加绝对值来表示数值,而与数字一样采用二进制代码0和1来表示正、负号。

这样在计算机中表示带符号的数值数据时,符号和数均采用了0、1进行了代码化。

这种采用二进制表示形式,连同正负符号一起代码化的数据,称为机器数或者机器码(即,数值在计算机中的二进制表示形式)。

与机器数对应,用正、负符号加绝对值来表示的实际数值称为真值。

根据约定机器数是否存在符号位,机器数可以分为无符号数和带符号数。

无符号数是指计算机字长的所有二进制位均表示数值。

带符号数是指机器数分为符号位和数值两部分,且均采用二进制表示。

一般约定最高位表示符号。

例1-1: 10011001作为无符号定点整数时,真值是153;作为带符号定点整数时,第一位是符号位,1代表负号,二进制数10011001的真值是-0011001,转化成十进制是-25。

对于带符号数,根据小数点位置固定与否,又可以分为定点数和浮点数。

在介绍浮点数之前我们要将注意力完全放在定点数上面,要有点耐心,对定点数的理解程度决定了我们对浮点数的理解程度,因为可以将浮点数看成是对定点数的一种应用,以后就会明白了。

好了,先看一看什么是定点数。

定点数约定所有数据的小数点位置均是相同且固定不变的。

计算机中通常使用的定点数有定点小数和定点整数两类。

定点小数:对于一个长度为n位的机器数,定点小数约定小数点在符号位和最高数值位之间,如下数符(最高位,占用1位). 尾数(剩余n-1位)小数点只是一个约定,是隐含的,不占用空间。

定点整数:对于一个长度为n位的机器数,定点整数约定小数点在最低数值位之后,如下数符(最高位,占用1位)尾数(剩余n-1位).小数点也是隐含的。

例1-2:下的八位二进制数,我们看看它们所代表的值是多少定点小数:1.1011001 真值=-0.1011001=-0.6953125定点整数:11011001 真值=-1011001=-89真值:127=+1111111 定点整数:01111111真值:-0.125=-0.001 定点小数:1.0010000总结上面的内容,机器数的特点是:1. 符号数值化,0代表正、1代表负。

第二章机器数的表示

第二章机器数的表示

第二章 机器数及运算方法
定点数:原码、补码、 定点数:原码、补码、反码和移码 机器数表示 浮点数: 浮点数:IEEE754标准 标准
机器数运算: 机器数运算:定点数和浮点数四则运算
§ 机器数的表示
一、数值型数据的表示和转换 数制: 1.数制: 权: 基数: 基数: 2、进制转换 十进制→ (1)十进制→二、八、十六 整数: 整数:除以基数取余法 小数: 小数:乘以基数取整法 (2)二、八、十六 → 十进制:按位乘权相加 十进制: 十六间转换: (3)二、八、十六间转换:按位段转换方法
例1:x1=+1010, x2= - 1101 求 x1, x2 的原码 字长n=8 例2:字长n=8 , x1=+1010, x2= - 1101 求 x1, x2 的原码 练习: 练习: (1) x1=0.1010, x2= -0. 1101 求 x1, x2 的原码 (2)n=8 ,x1=0.1010, x2= - 0.1101 求 x1, x2 的原码
三、机器数的表示
(一)有符号数与无符号数(字长n+1 位) 有符号数与无符号数(字长 有符号数: 位表示数值大小。 (1)有符号数:n位表示数值大小。 无符号数:n+1位表示数值大小 位表示数值大小。 (2)无符号数:n+1位表示数值大小。 (二)机器数与真值 真值:用正、负号来分别表示正数和负数。 (1)真值:用正、负号来分别表示正数和负数。 机器数: 位数码0 表示数的正负号。 (2)机器数:用1位数码0或1表示数的正负号。 (三)机器数的定点表示 定点表示法约定小数点位置固定。 定点表示法约定小数点位置固定。 (1)定点小数 (2)定点整数 (3)小数点的约定:计算机无须为小数点设置专门元 小数点的约定: 件,只要将全部参与运算的数都用同一个比例因子进行 定点数由数符和数值两部分组成。 折算即可 。定点数由数符和数值两部分组成。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13
例如:已知机器字长n=8,X=44,Y=53.求X+Y=? X+Y=? 解:[X] 00101100, 解:[X]原=00101100,[Y]原=00110101 [X]补=00101100,[Y]补=00110101 [X]补= 0 0 1 0 1 1 0 0 + [Y]补= 0 0 1 1 0 1 0 1
18
溢出判断规则与判断方法
两个相同符号数相加,其运算结果符号与被加数相同, 若相反则产生溢出; 两个相异符号数相减,其运算结果符号与被减数相同, 否则产生溢出。 相同符号数相减,相异符号数相加不会产生溢出。 溢出判断方法:1.双符号法,2.进位判断法 溢出判断方法:1.双符号法,2.进位判断法
19
+
[X+Y]补= 1 1 0 0 1 1 1 1 1 超出8位,舍弃模值 X+Y=-01100001,X+Y=( 97) X+Y=-01100001,X+Y=( -97)
15
例:已知机器字长n=8,X=44,Y=53,求X-Y=? 已知机器字长n=8,X=44,Y=53,求X Y=? 解:[X]补=00101100,[Y]补=00110101, 00101100, 00110101, [-Y]补=11001011 [X]补=0 0 1 0 1 1 0 0 + [-Y]补=1 1 0 0 1 0 1 1 [11110111
1~9区 1~9区(图形字母)各种字母、数字、符号等682个; 各种字母、数字、符号等682个; 16~55区 16~55区(一级汉字)一级 3755个汉字,按拼音排序; 3755个汉字,按拼音排序; 56~87区 56~87区(二级汉字)二级3008个汉字,按部首排序; 二级3008个汉字,按部首排序; 10~15、88~94区为保留区,做扩充用。 10~15、88~94区为保留区,做扩充用。
区位码是国标码的变形:国标码=区位码+2020H 区位码是国标码的变形:国标码=区位码+2020H ☆国标码、区位码均用4位数字进行一个汉字编码。 国标码、区位码均用4
9
2.汉字的输入(编码方法、方案) 2.汉字的输入
特点:易学习;易记忆;效率高;重码少; 特点:易学习;易记忆;效率高;重码少;容量大,易被接受。 分类: 数字编码,字音编码,字形编码, 分类: 数字编码,字音编码,字形编码,形音编码。
除上述三种BCD码之外,还有5421码、格雷码等。 除上述三种BCD码之外,还有5421码、格雷码等。
☆在存放形式上有:压缩码和非压缩码两种。 在存放形式上有:压缩码和非压缩码两种。
6
1.3.3 西文信息在机内的表示
ASCII码 ASCII码(American Standard Code For Information Interchange,美国国家信息交换标 Interchange,美国国家信息交换标 准字符码),每字符用一个字节表示,共有128 准字符码),每字符用一个字节表示,共有128 个字符(最高位为0)。其中 个字符(最高位为0)。其中 95个字符供显示、打印使用,余下33个 为控制 95个字符供显示、打印使用,余下33个 字符。如表1 所示: 字符。如表1-5所示: (见第17页 (见第17页) 扩展ASCII码可表示256个编码(EBCDIC码 扩展ASCII码可表示256个编码(EBCDIC码)
11
1.4 数值的运算方法
计算机中,常用补码进行加减运算。 补码可将减法变加法进行运算。 补码运算特点:符号位数值位一同运算。 定点补码运算在加法运算时的基本规则: [X+Y]补=[X]补+[Y]补 [X+Y]补=[X]补+[Y]补 定点补码运算在减法运算时的基本规则: 定点补码运算在减法运算时的基本规则: [X-Y]补=[X]补+[-Y]补 [X-Y]补=[X]补+[-Y]补
1
1.3.1 信息的数字化表示形式 数字信号:是一种在时间上或空间上离散的信号, 数字信号:是一种在时间上或空间上离散的信号,单个信
号是以常用的二值逻辑(0或1)来表示, 号是以常用的二值逻辑(0或1)来表示,依靠多 位信号组合表示广泛的信息。
2
1.用一串脉冲信号表示数字代码 1.用一串脉冲信号表示数字代码
3.汉字的输出 3.汉字的输出
过程:输入编码转换为机内码(存放),用字型码检索字
库得到点阵、轮廓字型,送显示器、打印机。
4.汉字在计算机内的表示 4.汉字在计算机内的表示
机内码是指机器内部处理和存储汉字的一种代码 机内码是指机器内部处理和存储汉字的一种代码 常用的机内码在国标码基础上每个字节最高位置1 常用的机内码在国标码基础上每个字节最高位置1 机内码=国标码+8080H=区位码+ 机内码=国标码+8080H=区0
例:X=0.1001,Y=0.0101, 例:X=0.1001,Y=0.0101,求[X+Y] 解: [X]补= 00.1001 +[Y]补= 00.0101 [X+Y]补= 00.1110 两个符号位相同,运算结果无溢出 X+Y=+0.1110
A.双符号位溢出判断法 Sf1⊕Sf2 (也被称为变形补码) 双符号含义:00 双符号含义:00 01 10 11
表示运算结果为正数; 表示运算结果正向溢出; 表示运算结果负向溢出; 表示运算结果为负数。
亦即:OVR 亦即:OVR = Sf1⊕ Sf2 = 1 有溢出 OVR = Sf1⊕ Sf2 = 0 无溢出
5
1.3.2 十进制数的编码
BCD码 BCD码
8421码为有权代码, 8421码为有权代码, 数值为N=8d 数值为N=8d3+4d2+2d1+1d0
十进制数63.29的BCD码为: 十进制数63.29的BCD码为: 0110 0011 . 0010 1001 0 1 2 3 4 5
8421码 8421码
7
1.3.4 中文信息在机内的表示
1.GB23121.GB2312-80国标码 国标码:我国在1981年颁布了《 国标码:我国在1981年颁布了《通讯用汉字字符 集(基本集)及其交换码标准》GB2312-80方案, 集(基本集)及其交换码标准》GB2312-80方案, 简称国标码,共7445字,各用两字节表示,分为 简称国标码,共7445字,各用两字节表示,分为 94个行区、94个列位。 94个行区 94个列位
数字化方法表示信息的优点: 数字化方法表示信息的优点:
抗干扰能力强,可靠性高; 抗干扰能力强,可靠性高; 位数增多则数的表示范围可扩大; 位数增多则数的表示范围可扩大; 物理上容易实现,并可存储; 物理上容易实现,并可存储; 表示信息的范围与类型极其广泛; 表示信息的范围与类型极其广泛; 能用逻辑代数等数字逻辑技术进行处理。
12
1.4.1 定点数的运算
1、定点数的加减法运算
计算机中,常采用补码进行加减运算 补码可将减法变加法进行运算 补码运算特点:符号位数值位一同参加运算 定点补码运算在加法运算时的基本规则: [X]补+[Y]补=[X+Y]补(两个补码的和等于和的补码) 定点补码运算在减法运算时的基本规则: 定点补码运算在减法运算时的基本规则: [X]补-[Y]补=[X]补+[-Y]补=[X-Y]补 +[=[X-
8
区位码:将国标码中的字符按其位置划分成94个 区位码:将国标码中的字符按其位置划分成94个 区,每个区中94个字符。 区,每个区中94个字符。
1…………………………94
字母、数字、各种符号等 682个 一级汉字 3755个 二级汉字 3008个
1~9区 1~9区 10~15区空 10~15区空 16~55区 16~55区 56~87区 56~87区 88~94区空 88~94区空
[X[X-Y]补=11110111,X-Y=-0001001=(-9) 11110111, Y=-0001001=(
16
例:已知机器字长n=8,X=-44,Y=-53,求X-Y=? n=8,X=-44,Y=Y=?
解:[X] =11010100, 解:[X]补=11010100,[Y]补=11001011, [-Y]补=00110101 [X]补=1 1 0 1 0 1 0 0 + [-Y]补=0 0 1 1 0 1 0 1 [100001001 超出8位(模值),舍弃 位(模值),舍弃 [X-Y]补=00001001,X-Y=+0001001 =(+9) [X=00001001,
01 1 0 00 0 1 X+Y= + 97
14
例:已知机器字长n=8,X=-44,Y=-53,求X+Y=? n=8,X=-44,Y=-53, X+Y=?
解:[44]补=00101100, [53]补=00110101 [X]补=[-44]补=11010011+1=11010100, =[[Y]补=[-53]补=11001010+1=11001011, =[[X]补=1 1 0 1 0 1 0 0 [Y]补=1 1 0 0 1 0 1 1
2421码为有权代码, 2421码为有权代码, 数值为N=2d 数值为N=2d3+4d2+2d1+1d0
6 十进制数63.29的BCD码为: 十进制数63.29的BCD码为: 7 1100 0011 . 0010 1111 8 余3码为无权代码,对应8421码加3而得。 9 码为无权代码,对应8421码加3
17
溢出问题:运算的结果超出数值所能表示的范围 溢出问题:运算的结果超出数值所能表示的范围 例题:机器字长n=8,X= 120,Y=10,求X+Y=? n=8, 120,Y=10, X+Y=? 解: [X]补=01111000,[Y]补=00001010, =01111000, [X]补=0 1 1 1 1 0 0 0 + [Y]补=0 0 0 0 1 0 1 0 10000010 [X+Y]补=10000010,X+Y=11111110 =10000010, X+Y的真值= X+Y的真值= -1111110=( -126)10 ☆运算结果超出机器数值范围发生溢出错误。 8位计算机数值表达范围:-128~+127 位计算机数值表达范围:-
相关文档
最新文档