真值和机器数概念

合集下载

计算机中的真值和机器数

计算机中的真值和机器数

计算机中的真值和机器数真值(即:带有正负号的数值是真值,⽤0或1来表⽰正负号的数值是机器数,例如:-10011为真值,110011为机器数)以下X表⽰数据的真值。

1. 原码表⽰法最简单且直观的机器数表⽰法,其最⾼位为符号位(0为正,1为负),数值部分与真值的数值相同设X为纯⼩数,⼀位符号位,n个数值位,则X 0=<X<=1-2n-1[X]原={1-X=1+|X| -(1-2n-1)=<X<=0例如:x=-0.1001,那么先把它转化成机器数为:1.1001根据公式:[X]原=1-X=1-(-0.1001)=1+0.1001=1.1001=1+|-0.1001|[+0.8125]原=(0.1101000)2[-0.8125]原=1-(-0.8125)=(1.0000000)2+(0.1101000)2=(1.1101000)2设X为纯整数,⼀位符号位,n个数值位,则X 0=<X<=2n-1[X]原={2n-X=2n+|X| -(2n-1)=<X<=0例如:机器字长n=8[+35]原=(00100011)2[-35]原=27-(-35)=(10000000)2+(00100011)2=(10100011)22.补码表⽰法变形补码:即⽤两个⼆进制位来表⽰数字的符号位,其余与补码相同。

变形补码,⽤"00"表⽰正,⽤"11"表⽰负,也称为模4的补码。

⽤变形补码进⾏加减运算时,当运算结果的符号位出现"01"或者"10"时,则表⽰产⽣溢出。

变形补码的最⾼位(第⼀个符号位)总是表⽰正确的符号,⽐如"00"、 "01"分别表⽰正数、正溢出(上溢),"11"、"10"表⽰负数、负溢出(下溢)。

1、产⽣01的情况: 补码: 0 111+ 0 010----1 001两个正数相加出现了负数,明显有误,就是说此时产⽣了上溢出(注:补码运算时符号位也参与运算)变形补码: 00 111+ 00 010----01 001此时读数时,由于左边的符号位是0,所以表⽰正数,读成+9,⽽不像模⼆补码中变成了-72、产⽣10的情况: 补码: 1 001+ 1 010---- 10 011溢出⼀位后,结果变成了0 011,两个负数相加出现了正数,明显有误,就是说此时产⽣了(注:补码运算时符号位也参与运算)变形补码: 11 001+ 11 010----110 011溢出⼀位后,结果变成了10 011,此时读数时,由于左边的符号位是1,所以表⽰负数,读成-19,⽽不像模⼆补码中变成了+3(注:产⽣01和10时,读数时右边那⼀位符号也要算在数字⾥⾯)。

真值和机器数概念

真值和机器数概念

真值和机器数概念概念补充1.计算机的主要功能:数值处理信息处理信息存储。

对数值的运算、处理和存储,要通过数字逻辑电路完成,而数字逻辑电路只处理二进制数据代码,因此计算机中数据信息表示方法,存储方式要用到计算机中的进位计数制。

由此牵扯出本章中各种进位计数制的概念、运算、和相互转换,并进而研究各类数据通过进位计数制(一套表示数值大小的方法)在计算机中的表示和存储2.真值和机器数概念补充:一个数在计算机中的二进制表示形式, 叫做这个数的机器数。

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

如果是-3 ,就是10000011 。

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

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

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

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

例:0000 0001的真值= +0000001 = +1,1000 0001的真值=–000 0001 = –1简单说,计算机中二进制数据要用0 1表示大小和正负,一般将最高位作为符号位,0表示正号,1表示负号,其余位表示数值大小。

这种在计算机内部将正负号数字化后得到的数称为机器数,而在计算机外部用正负号表示的实际数值,称为机器数表示的真值3.原码反码补码:参见课本P35 为了便于对已机器数形式存放的数据进行数据运算,机器数一般有三种表示方法原码反码补码1)原码:以最简单的表示法,原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [+1]=原0000 0001 [-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.2)反码:反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.简单说,由原码得反码机器数为正时,二者相同。

《计算机组成原理》唐朔飞第二版_笔记

《计算机组成原理》唐朔飞第二版_笔记

《计算机组成原理》唐朔飞第⼆版_笔记第1章概论1,计算机系统的软硬件概念1)硬件:计算机的实体部分,它由看得见摸得着的各种电⼦元器件,各类光、电、机设备的实物组成,如主机、外部设备等。

2)软件:由⼈们事先编制的具有各类特殊功能的程序组成,分为系统软件和应⽤软件。

①系统软件⼜称为系统程序,主要⽤来管理整个计算机系统,监视服务,使系统资源得到合理的调度,⾼效运⾏。

它包括:标准程序库、语⾔处理程序(编译程序)、操作系统、、服务程序(如诊断、调试、连接程序)、数据库管理系统、⽹络软件等。

②应⽤软件⼜称应⽤程序,它是⽤户根据任务需要所编制的各种程序,如科学计算程序、数据处理程序、过程控制程序、实物管理程序。

2、计算机系统的层次结构:1)硬联逻辑级:第零级是硬联逻辑级,这是计算机的内核,由门,触发器等逻辑电路组成。

2)微程序级:第⼀级是微程序级。

这级的机器语⾔是微指令集,程序员⽤微指令编写的微程序,⼀般是直接由硬件执⾏的。

3)传统机器级:第⼆级是传统机器级,这级的机器语⾔是该机的指令集,程序员⽤机器指令编写的程序可以由微程序进⾏解释。

操作4)系统级:第三级是操作系统级,从操作系统的基本功能来看,⼀⽅⾯它要直接管理传统机器中的软硬件资源,另⼀⽅⾯它⼜是传统机器的延伸。

5)汇编语⾔级:第四级是汇编语⾔级,这级的机器语⾔是汇编语⾔,完成汇编语⾔翻译的程序叫做汇编程序。

6)⾼级语⾔级:第五级是⾼级语⾔级,这级的机器语⾔就是各种⾼级语⾔,通常⽤编译程序来完成⾼级语⾔翻译的⼯作。

7)应⽤语⾔级:第六级是应⽤语⾔级,这⼀级是为了使计算机满⾜某种⽤途⽽专门设计的,因此这⼀级语⾔就是各种⾯向问题的应⽤语⾔。

把计算机系统按功能分为多级层次结构,就是有利于正确理解计算机系统的⼯作过程,明确软件,硬件在计算机系统中的地位和作⽤。

3、计算机组成和计算机体系结构1)计算机体系结构:是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。

原码、反码、补码课件

原码、反码、补码课件

160
二进制数相加
10000110 + 00011010
10100000
看成补码
-122
+
26
-96
出现问题
• 错误的结果:
11001011 10010001
01011100
-0110101 + -1101111
+1011100
-53 + -111
-+19624
思考:为什么出现了错误?
补码 • 溢出
补码 •补码的求法(1)
• 正数:与原码相同;
• 负数:“求反加一”
例:
x=+1001100B,则[x]补=01001100B=[x]原
x=-1001100B,则[x]补=10110100B
x=-1001100时, [x]补=28-1001100B
11111111 01001100
=256 -1001100B =255 -1001100B +1
溢出
图d 有进无出
补码 • 溢出的判别(3)
• 课堂练习
1、请判断下列8位补码的运算是否会产生溢出?
11001001 11100111
10110000
有进有出,无溢出
01100011 01001010
10101101
有进无出,溢出
补码小结
真值 机器数
无符号数 有符号数
原码 反码
真值的方法 已知[x]补,求[-x]补的方法 溢出
• 拨针方法小结: 8- 2=6
8 + 10 = 6 • 思考:为什么会出现这种现象?计算机中是否
也有这种现象? (表盘是圆的,可循环计时。)

第1章数据在计算机中的表示形式讲义.

第1章数据在计算机中的表示形式讲义.
第1章
数据在计算机中的表示形式
本章主要内容
(1) 机器数与真值的概念 (2) 常见的机器数表示形式 (3) 数的定点表示与浮点表示
1.1 机器数与真值
电子计算机实质上是一个二进制的数字系统,在机器
内部,二进制数总是存放在由具有两种相反状态的存储 元件构成的寄存器或存储单元中,即二进制数码0和1是 由存储元件的两种相反状态来表示的。
① 若定点小数原码序列为x0. x1x2… xn ,则 [x]原= x 0≤x<1 1-x -1<x≤0 式中x代表真值,[x]原为原码表示的机器数。 例如:
x=+0.1011,则[x]原 =0.1011 x=-0.1011,则[x]原 =1-(-0.1011)=1+0.1011=1.1011 ② 若定点整数原码序列为x0 x1 x2… xn ,则 [x]原= x 0≤x<2n 2n - x -2n<x≤0
例如: x=+1011,则[x]原=01011 x=-1011,则[x]原=24 –(–1011)=10000+1011=11011 对于原码表示,具有如下特点: ① 原码表示中,真值0有两种表示形式。 以定点小数的原码表示为例: [+0]原=0.00…0 [-0]原=1-(-0.00…0)=1+0.00…0=1.00…0 ② 在原码表示中,符号位不是数值的一部分,它们仅是 人为约定(“ 0 为正, 1 为负”),所以符号位在运算 过程中需要单独处理,不能当作数值的一部分直接参 与运算。

移码特点:
1)移码是把真值映射到一个正数域,因此移码的大小 可以直观地反映真值的大小。无论是正数还是负数, 用移码表示后,可以按无符号数比较大小。 2)移码的数值部分与相应的补码各位相同,而符号位 与补码相反。在移码中符号位为0表示真值为负数,符 号位为1表示真值为正数。 3)移码为全0时,它对应的真值最小。 4)真值0在移码中的表示是唯一的,即:

c语言习题集及答案

c语言习题集及答案

计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。

3.简述计算机软件各个时代的主要特征。

答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。

4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。

5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。

6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。

7.简述计算机主要应用在哪些方面。

答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。

8.简述计算机系统抽象分层,及每一层的功能。

答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。

计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。

机器数是什么

机器数是什么

机器数是什么通常,机器数是把符号"数字化"的数,是数字在计算机中的二进制表示形式。

实用的数据有正数和负数,由于计算机内部的硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号“+”或负号“-”,在机器里就用一位二进制的0或1来区别。

一.机器数、真值1.机器数机器数就是一个数在计算机中的二进制表示,计算机中机器数的最高位是符号位,正数符号位为0,负数符号位为1。

机器数包含原码、反码和补码三种表示形式,后文会具体进行解释。

例如:十进制中的+2在计算机中的字长为8,转换成二进制为0000 0010 十进制中的-2在计算机中的字长为8,转换成二进制为1000 0010 上文例子中的0000 0010和1000 0010就是机器数2.机器数的真值真值就是带符号位的机器数对应的真正数值,个人理解就是用正负号来代替符号位来表示机器数例如:机器数0000 0010的真值为+000 0010也就是+2机器数1000 0010的真值为-000 0010也就是-2二.机器数的三种表示形式:原码、反码、补码1.原码原码就是加了一位符号位的二进制数,正数符号位为0,负数符号位为1,符号位为最高位。

个人理解就是将真值里面的"+"转换为0,"-"转换为1。

|十进制|真值|原码||:---:|:---:|:---:||+2|+000 0010|0000 0010||-2|-000 0010|1000 0010|由此可以得出8位的二进制数的大小范围为[1111 1111,0111 1111],也就是[-127,127]对应java中byte数据类型的大小范围2.反码正数的反码就是其原码,负数的反码则是符号位不变,其他位取反(0变1,1变0)|十进制|原码|反码||:---:|:---:|:---:||+2|0000 0010|0000 0010||-2|1000 0010|1111 1101|3.补码正数的补码就是其原码,负数的补码则是反码+1|十进制|原码|反码|补码||:---:|:---:|:---:|:---:||+2|0000 0010|0000 0010|00000010||-2|1000 0010|1111 1101|1111 1110|4.为何使用反码、补码使用原码进行计算的时候,对于人而言能够很轻易的辨别出符号位,然后直接对其他位数值进行计算。

补码

补码

二、无符号数与有符号数
• 无符号数:
– 全部二进制均代表数值,没有符号位。
• 有符号数:
– 用最高位作为符号位,“0”代表“+”,“1”代 表“-”;其余数位用作数值位,代表数值。 – 如: +35 化为有符号机器数
转换为 二进制 +35 +100011B 化成有 符号数 0100011
8位 16位
看成无符号数 134 26 160 二进制数相加 10000110 00011010 10100000 看成补码 -122 26 -96
+
+
+
出现问题
• 错误的结果:
11001011 10010001 01011100
-0110101 + -1101111 +1011100
-53 + -111 +92 -164
思考:为什么出现了错误? 思考:为什么出现了错误?
补码 • 溢出
• 刚才出现的问题叫做“溢出 溢出”; 溢出 • 溢出的原因:运算结果超出了可表示的有 符号数的范围。 • 溢出只会出现在两个同号数相加或两个异 号数相减的情况下。
思考:如何判别溢出与正常进位? 思考:如何判别溢出与正常进位?
补码 • 溢出的判别(1) 溢出的判别(1)
n位 …… 模的思路(
• 观察钟表拨针的两种方法: 8- 2=6 8 + 10 = 6 我们可以看出,减去一个数 a 相当于加上(模 -a)一样,而在计算机中也有相同情况。 • 在8位字长的计算机中,减去一个数a相当于加 上(28-a)一样。 • 我们称(28-a)为a的补数,其二进制表示形式 称为补码 补码。 补码
• 拨针方法小结: 8- 2=6 8 + 10 = 6 • 思考 思考:为什么会出现这种现象?计算机中是否 也有这种现象? (表盘是圆的,可循环计时。)

计算机原码、反码、补码、机器数、真值、有符号数、无符号数等的区分与运算

计算机原码、反码、补码、机器数、真值、有符号数、无符号数等的区分与运算

在计算机的存储器中统一采用二进制数的方式进行数据存储。

而编程中则综合使用二进制、八进制、十进制与十六进制的数据表示方法,程序编译后一般生成十六进制的可烧写文件,而烧写到存储器后最终在存储单元中存放的还是二进制形式。

而二进制又有真值,原码,反码,补码,机器数,有符号数,无符号数,等诸多概念之分。

故下面主要就二进制数(以整数为例,后面提到的数据皆指整数)的存储与运算过程中涉及到的一些概念与规则进行梳理。

讲的主要是在计算机中的,以8位单片机为例,后面以32位ARM单片机指令举例。

1有符号数和无符号数。

数据首先分为有符号数和无符号数。

对于无符号数来说,肯定指的0与正数,无负数之说,自然也无原码、反码、补码之说,一般也不针对于无符号数讨论机器数、真值等概念。

其存储方式与有符号数存储也无特别之处,具体的将在“存储单元中的数据”一节讲述。

有符号数,有正负与0三种,由于在计算机中无法表示负号,或者说用专门的符号表示负号很不方便,于是就采用对正负号进行数值编码的方式,用“0”代表非负数,“1”代表负数。

根据不同的编码方式,对有符号数一般可以有原码、反码、补码三种最常见的编码形式。

2 真值真值就是所表示的数的大小,一般用10进制表征。

3 原码、反码、补码具体概念我就不重复了,只重申下相关结论:a.正数的原码、反码、补码都相同。

b.负数的反码为原码的按位取反(保持符号位不变),补码为反码加1.4 机器数原码、反码、补码都是机器数的一种表示形式,或说都属于机器数。

5 存储单元中的数据(存储单元包括存储器中的存储单元和寄存器)在计算机的存储器的存储单元中的数据均以补码形式存放的,于是在计算机中的数据表示有下面结论:a不使用原码与反码。

但原码与反码可以作为计算真值的中间媒介。

b存储单元中的数据以补码形式存在。

c 数据的存取与运算都以补码形式进行。

d补码就是机器数,机器数就是补码。

解释:掌握一个基本原则——简单,存储单元是个很有原则的家伙,他只管存01序列,才不管该序列是表示指令编码还是数据呢,更不会管是有符号数还是无符号数,也不管是数据的原码、反码还是补码。

第1章 基础知识2机器中符号数的表示法

第1章 基础知识2机器中符号数的表示法

例如n=16: -32767~+32767 反码表示范围: -(2n-1-1) ~ +(2n-1-1)
例如n=16: -32767~+32767 补码表示范围: -(2n-1) ~ +(2n-1-1)
例如n=16: -32768~+32767
2013-08
17
6. 二进制数的扩展
是指:数据从位数少扩展到位数较多——增加二进制位数。 例如从八位变为十六位 一个二进制数扩展后,应该保持这个数的大小和符号不变。 (1)源码表示的二进制数: 将符号位左移到最高位,其他全部扩展为补0 例如: 1100 0110B → 1000 0000 0100 0110B 0010 1101B → 0000 0000 0010 1101B


真值
- 1101001B (-105)
+1101110B (+110)
2013-08
4
(3)带符号数与无符号数 用一位二进制位表示数的符号:0表示正数,1表示负数, 这种表示数的方法,称为带符号数的表示方法。所表示的数, 叫做带符号的数。 带符号的数其最高位为符号位。
如果将全部有效位都用来表示数的大小,这种数的表示方
0000 0000 0000 0001 0000 0010
0111 0111 1000 1000 1110 1111 0000 0001
1111 1101 1111 1110 2013-08 1111 1111
253 254 255
-125 -126 -127
-2 -1 -0
-3 -2 -1 15
对于8位二进制数 00000000B~11111111B 源码表示范围: 11111111B ~ 01111111B: -(27-1) ~ +(27-1)

【王的技法0001】机器数、真值、原码、反码、补码总结

【王的技法0001】机器数、真值、原码、反码、补码总结

【王的技法0001】机器数、真值、原码、反码、补码总结⼀、概念清单1. 机器数2. 真值3. 原码4. 反码5. 补码⼆、概念详解1. 机器数1. 机器数是⼀个数在计算机中的⼆进制表⽰形式。

2. 机器数带符号,最⾼位存放,正数为0,负数为1。

⼗进制数+3,计算机字长为8位的话,转换⼆进制为00000011⼗进制数-3,计算机字长为8位的话,转换⼆进制为10000011上述这两个⼆进制就是机器数。

2. 真值1. 由于符号位的存在,机器数不等于真值。

2. 带符号的机器数,真正的数值。

-3是真值,它的机器数是10000011(其形式值为131(⼗进制))3. 原码1. 原码是符号位加上真值的绝对值,即第⼀位为符号位,其余位表⽰值。

⼗进制数+1原码为 00000001⼗进制数-1原码为 100000012. 因为第⼀位是符号位,所以8位⼆进制的取值范围为:[11111111,01111111]即[-127,127]3. 原码是⼈脑最容易理解和计算的编码⽅式。

4. ⽆符号数⽤原码。

4. 反码1. 正数的反码是其本⾝。

2. 负数的反码是其原码基础上,符号位不变,其余各位取反。

[+1] = [00000001]【原】 = [00000001]【反】[-1] = [10000001]【原】 = [11111110]【反】3. 反码不容易被⼈脑直接看出真值,通常需要转换成原码5. 补码1. 正数的补码是其本⾝。

2. 负数的补码是其原码的基础上,符号位不变,其余各位取反,最后+1。

[+1] = [00000001]【原】 = [00000001]【反】 = [00000001]【补】[-1] = [10000001]【原】 = [11111110]【反】 = [11111111]【补】3. 补码不容易被⼈脑直接看出真值,通常需要转换成原码4. 计算机中,有符号数采⽤补码三、有符号数采⽤补码的意义与⽅法1. 意义:为了让符号位参与运算,以简化基础电路设计。

计算机硬件技术基础-计算机的运算基础

计算机硬件技术基础-计算机的运算基础

求98+45。
[98]补 = 0 1100010 +[45]补 = 0 0101101 1 0001111 = [-113]补 Cin=0,Cout=1,OF= Cin⊕Cout=1,有溢出,结果错误。
溢出与进位
进位是指运算结果的最高位向更高位产生
的进位。
进位与溢出是两个不同性质的概念。 溢出是针对有符号数而言的,对于无符号
码制之间的关系
ASCII码一般在计算机的输入输出设备中使用,
二进制码和BCD码则在运算、处理过程中使用。
计算机在解决实际问题时,常常需要在几种机器
码之间进行转换。
(2)汉字编码
在计算机中,通常用两个字节表示一个汉字。为了与
西文字符的编码相区别,把表示一个汉字的两个字节 的最高一个二进制位设定为1,与ASCII码相区别。 这 种 汉 字 编 码 方 案 的 编 码 集 最 多 编 码 数 量 为 128*128个,称为汉字机内码。
[+4]反
[-4]反
= 0 0000100
= 1 1111011
n位反码表示数值的范围是:
-(2n-1-1)--- +(2n-1-1) 数0的反码有两种不同形式 [+0]反 =0 0000000 [-0]反 =1 1111111
反码还原为真值:[X]原 = [[X]反]反
(2)带符号数机器数的表示方法(续)
n-1-1)
n位原码表示数值的范围是:
n-1-1)---
数0的原码有两种不同形式
[+0]原=0 0000000
[-0]原 =1 0000000
原码表示简单,真值转换方便,减法不方便。
(2)带符号数机器数的表示方法(续)

什么是原码、反码、补码

什么是原码、反码、补码

[-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

ZD微机原理Ch01_补充运算基础(第二次)

ZD微机原理Ch01_补充运算基础(第二次)


任何有模的计量器,均可化减法为加法运算。 n位单片机计量范围:0~2n-1,模2n 。|X真值|+X补码= 2n
4
已知补码求真值: ℡ 已知正数的补码求真值 与原码相同,只要将符号位的0变为+(正号),即 得到它的真值。 ℡ 已知负数的补码求真值 方法 1 : 将负数补码的数值位按位取反再加 1 ,将符 号位的1变为-(负号),即得到它的真值。 方法2:用公式:X=-(2 -[X]补) 已知 补码为 01111111B,其真值为+1111111B=+7FH 已知 补码为 11111111B,其真值为: 10000000B+1= 10000001B,其真值为—01H 或:X= —( 2 — 11111111B)= —(00H-FFH)= —1
19
二进制编码
z 计算机Hale Waihona Puke 理的信息:数值、字符(字母、汉字等)
z 各字符在计算机中由若干位的二进制数表示 z 二进制数与字符之间一一对应的关系,称字符 的二进制编码。
20
计算机编码
ASCII码
二进制编码 的十进制数
字符编码 汉字编码
国 标 码 (7445)
BCD码
(余三码 / 8421码)
21
二-十进制(BCD)码
2、机器数与真值 真值: 直接用 “+”和 “–”表示符号的二进制数,不能在机器使用。 机器数:将符号数值化了的二进制数,可在机器中使用。
原码: 正数符号位用“ 0”表示,负数符号用“1”表示,这种表示法称为原码。 3、带符号数的原码、反码、补码 反码:正数反码--表示与原码相同;
负数反码--表示为负数原码的符号位不变,尾数按位取反。
18
思考:计算机能自动识别无符号数和符号数吗? 但是,由于引入了补码概念,使得计算机在进行无符号数 和有符号数的运算时能够实现操作的一致性,且结果合理。 例如,将无符号数 1FH(00011111) 与 D0H(11010000) 相加,或 是将符号数1FH与D0H相加,其结果都是EFH。 编制无符号数加法程序的用户则会将该结果的真值认为是 239,即31+208。 而编制符号数加法程序的用户则会将该结果的真值认为是 17,即31+(-48)。

真值原码反码补码详解和习题

真值原码反码补码详解和习题

原码、反码和补码的概念本节要求掌握原码、反码、补码的概念知识精讲数值型数据的表示按小数点的处理可分为定点数和浮点数;按符号位有原码、反码和补码三种形式的机器数。

一.计算机中数据的表示方法1、数的定点与浮点表示在计算机内部,通常用两种方法来表示带小数点的数,即所谓的定点数和浮点数。

①定点数:是小数点在数中的位置是固定不变的数,数的最高位为符号位,小数点可在符号位之后,也可在数的末尾,小数点本身不需要表示出来,它是隐含的。

缺点:只有纯小数或整数才能用定点数表示;②浮点数:小数点在数中的位置是浮动的、不固定的数。

一般浮点数既有整数部分又有小数部分,通常对于任何一个二进行制数N,总可以表示成:N=±2P×SN、P、S均为二进制数,P为N的阶码,一般为定点整数,常用补码表示,阶码指明小数点在数据中的位置,它决定浮点的表示范围S为N的尾数,一般为定点小数,常用补码或原码表示,尾数部分给出了浮点数的有效数字位数,它决定了浮点数的精度,且规格化浮点数0.5≤|S|<1;0.1B=( 1/2 )D =( 2-1)D0.11B=(1/2 + 1/4 )D =( 2-1+2-2)D0.111B=(1/2 + 1/4 + 1/8 )D =( 2-1+2-2+2-3)D ---------------------------在计算机中表示一个浮点数其结构为:假设用八个二进制位来表示一个浮点数,且阶码部分占4位,其中阶符占一位;尾数部分占4位,尾符也占一位。

若现有一个二进制数N=(101100)2可表示为:2110×0.1011,则该数在机器内的表示形式为:101100B= 10110B * (21)D101100B= 1011B * (22)D101100B= 101.1B * (23)D101100B= 10.11B * (24)D101100B= 1.011B * (25)D101100B= 0.1011B * (26110一个浮点形式的尾数S若满足0.5≤|S|<1,且尾数的最高位数为1,无无效的0,则该浮点数称为规格化数;规格化数可以提高运算的精度。

二进制数的原码、反码及补码

二进制数的原码、反码及补码

二进制数的原码、反码及补码1、机器数与真值机器数:数在机器中的编码表示。

真值:一般书写表示的数。

机器数中,数值和符号完全数字化。

计算机在进行数字运算时,采用把各种符号位和数字位一起编码的方法。

常见的有原码、反码及补码表示法。

2、原码表示法原码表示法是机器数的一种简单表示法。

其符号位用0表示正数,用1表示负数,数值一般用二进制形式表示。

[x]原=符号位+绝对值若x=+1100110 则[x]原=01100110x= -1100110 [x]原=11100110所以用8位二进制数来表示整数原码时,其表示范围:最大数:01111111,为(+127)D最小数:11111111,为(-127)D思考:0的原码有两种表示形式!!3、反码表示法机器数的反码可由原码得到。

如果机器数是正数,则机器数的反码与原码一致;若机器数是负数,则机器数的反码是它的原码(符号位除外)的各位取反而得到。

即:正数:[x]反=[x]原负数:[x]反=对[x]原除符号外的各位取反若x=+1100110 则[x]反=01100110x= -1100110 [x]反=100110014、补码表示法机器数的补码也可由原码得到。

如果机器数是正数,则机器数的反码与原码一致;若机器数是负数,则机器数的反码是它的原码(符号位除外)的各位取反,并在末位加1而得到。

即:反码是作为求补码的中间过程。

正数:[x]补=[x]原负数:[x]补=[x]反+1若x=+1100110 则[x]补=01100110x= -1100110 [x]补=10011010注意:补码的0只有一种表示形式![+0]原=00000000 [-0]原=10000000[+0]反=00000000 [-0]反=11111111[+0]补=[-0]补=00000000所以用8位二进制数来表示整数补码时,其表示范围:最大数:01111111,为(+127)D最小数:10000000,为(-128)D。

计算机中如何表示数字(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代表负。

知识点 计算机组成原理

知识点   计算机组成原理

知识点计算机组成原理知识点-计算机组成原理计算机组成原理重要知识点第一章绪论一、冯.诺依曼思想体系――计算机(硬件)由运算器、控制器、存储器、输入输出设备五部分组成,存储程序,按地址出访、顺序继续执行二、总线的概念。

按传送信息的不同如何划分;按逻辑结构如何划分三、冯.诺依曼结构(普林斯顿结构)与哈弗结构的存储器设计思想四、计算机系统的概念,软件与硬件的关系、计算机系统的层次结构(实际机器与交互式机器)五、计算机的主要性能指标的含义(机器字长,数据通路宽度,主存容量,运算速度)六、cpu和主机两个术语的含义,完备的计算机系统的概念,硬件、软件的功能分割七、总线概念和总线分时共享资源的特点、三态门与总线电路第二章数据的机器层次表示一、真值和机器数的概念数的真值变为机器码时存有四种则表示方法:原码表示法,反码表示法,补码表示法,移码则表示码。

其中移码主要用作则表示浮点数的阶码e,以利比较两个指数的大小和对阶操作方式二、一个定点数由符号位和数值域两部分组成。

按小数点位置不同,定点数有纯小数和纯整数两种表示方法。

几种定点机器数的数值则表示范围。

三、浮点数浮点数的标准表示法:符号位s、阶码e、尾数m三个域组成。

其中阶码e通常用移码表示(其值等于指数的真值e加上一个固定偏移值)。

规格化浮点数(原码,补码则表示的规格化浮点数的区别)五、处理字符信息(符号数据即非数值信息),七、常用的bcd码:8421码、2421码、余3码、格雷码(有权码,无权码,特点)八、检错纠错码:奇偶校验(掌握奇偶校验原理及校验位的形成及检测方法),海明码的纠错原理(理解)第三章指令系统一、指令格式:指令的基本格式,指令的地址码结构(3、2、1、0地址指令的区别),非规整型指令的操作码(扩展览会操作码)二、编址方式(位,字节,字…)三、操作数串行方式――立即串行、轻易串行、间接串行、寄存器串行、寄存器间接串行、相对串行、基址寻址、变址寻址、页面寻址四、指令串行方式――顺序对串行方式、弹跳串行方式五、指令类型及功能六、不同的计算机的i/o指令差别很大,通常有两种方式:独立编址方式,统一编址方式第四章数值的机器运算一、为运算器构造的简单性,运算方法中算术运算通常采用补码加减法,原码乘除法或补码乘除法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概念补充
1.计算机的主要功能:数值处理信息处理信息存储。

对数值的运
算、处理和存储,要通过数字逻辑电路完成,而数字逻辑电路只处理二进制数据代码,因此计算机中数据信息表示方法,存储方式要用到计算机中的进位计数制。

由此牵扯出本章中各种进位计数制的概念、运算、和相互转换,并进而研究各类数据通过进位计数制(一套表示数值大小的方法)在计算机中的表示和存储2.真值和机器数概念补充:一个数在计算机中的二进制表示形式, 叫做这个数的
机器数。

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


果是-3 ,就是10000011 。

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

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

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

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

例:0000 0001的真值= +000 0001 = +1,1000 0001的真值= –000 0001 = –1简单说,计算机中二进制数据要用0 1表示大小和正负,一般将最高位作为符号位,0表示正号,1表示负号,其余位表示数值大小。

这种在计算机内部将正负号数字化后得到的数称为机器数,而在计算机外部用正负号表示的实际数值,称为机器数表示的真值
3.原码反码补码:参见课本P35 为了便于对已机器数形式存放的数据进行数据运
算,机器数一般有三种表示方法原码反码补码
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]补对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.简单说,正数时原补相同,负数时,符号位(表示正负号的那一位)不变,其余数值位全部按位取反后再加一。

所以说,负数的补码就等于该数的反码加一。

具体运算课本上有例子P36
总结:计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同: [+1] = [00000001]原 = [00000001]反 = [00000001]补
所以不需要过多解释. 但是对于负数:
[-1] = [10000001]原 = [11111110]反 = [11111111]补
以上为个人见解因时间有限研究未深,只可浅尝辄止,与你所问无关的没有列出,需要的再问兰姐加油期末高分。

相关文档
最新文档