进制转换及原码反码补码练习题

进制转换及原码反码补码练习题
进制转换及原码反码补码练习题

进制转换练习题

【例题1-1】十进制数1000对应二进制数为______,对应十六进制数为______。

供选择的答案

A:① 10 ② 00 ③ 00 ④ 10

B:① 3C8 ② 3D8 ③ 3E8 ④ 3F8

【例题1-2】十进制小数为对应的二进制数为______,对应的十六进制数为______。

供选择的答案

A:①②③④

B:①②③④

【例题1-3】二进制的1000001相当十进制的______,二进制的可以表示为______。

供选择的答案

A:① 62 ② 63 ③ 64 ④ 65

B:① 23+2–3② 22+2–2③ 23+2–2④ 22+2–3

【例题1-4】十进制的100相当于二进制______,十进制的相当二进制的______。

供选择的答案

A:① 1000000 ② 1100000 ③ 1100100 ④1101000

B:① 2–1+2–2+2–4+2–5② 1–(2–3+2–4)

③ 1+(–2–3–2–4) ④ 1–2–3–2–4–2–6

【例题1-5】八进制的100化为十进制为______,十六进制的100化为十进制为______。

供选择的答案

A:① 80 ② 72 ③ 64 ④ 56

B:① 160 ② 180 ③ 230 ④ 256

【例题1-6】在答案群所给出的关系式中正确的为______,在给出的等式中不正确的为______。

供选择的答案

③ > ④ <

B:① = ② =

③ = ④ =

【例题1-7】十六进制数相当十进制数______。

供选择的答案

A:①②③④

【例题1-8】 2005年可以表示为______ 年;而37308年是指______ 年。

供选择的答案

A:① 7C5H② 6C5H③ 7D5H④ 5D5H B:① 200010② 200210③ 200610④ 200810

【例题1-10】二进制数可以表示为______;将其转换成八进制数为______;将其转换成十六进制数为______。

供选择的答案

A:① 25+2–5② 24+2–4③ 25+2–4 ④ 24+2–5

B:①②③④

C:①②③④

【例题1-11】对于不同数制之间关系的描述,正确的描述为______。

供选择的答案

A:①任意的二进制有限小数,必定也是十进制有限小数。

②任意的八进制有限小数,未必也是二进制有限小数。

③任意的十六进制有限小数,不一定是十进制有限小数。

④任意的十进制有限小数,必然也是八进制有限小数。

【例题1-12】二进制整数11转换为十进制数为______,二进制小数转换成十进制数为______。

供选择的答案

A:① 1021 ② 1023 ③ 1024 ④ 1027

【例题1-13】十进制的相当十六进制的______,十六进制的相当十进制的______。将二进制的表示为十六进制为______,将十六进制的表示为二进制为______。

供选择的答案

A:①②③④

B:①②③④

C:①② 0.9C1 ③ 0.9C4 ④ 0.9C8

D:① 28+2–8② 28+2–9③ 28+2–10④ 28+2–12

【例题1-14】多项式212+28+21+20表示为十六进制为______,表示为十进制为______。

供选择的答案

A:① 163+162+16–1② 163+162+3/1 ③ 163+162+16 ④

163+162+3

B:① 4353 ② 4354 ③ 4355 ④ 4356【例题1-15】已知a=,b=,c=,d=,e=,f=,若使a=c,则a 为______,c为______;若使d=f,则d为______,f为______,若使b=e,则b为______,e为______。

供选择的答案

①二进制数②八进制数③十进制数

④十六进制数⑤六进制数⑥十二进制数

第5页还有练习

真值原码反码补码+13

-13

+36

-36

-128

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

原码、反码和补码的概念 本节要求 掌握原码、反码、补码的概念 知识精讲 数值型数据的表示按小数点的处理可分为定点数和浮点数;按符号位有原码、反码和补码三种形式的机器数。 一.计算机中数据的表示方法 1、数的定点与浮点表示 在计算机内部,通常用两种方法来表示带小数点的数,即所谓的定点数和浮点数。 ①定点数:是小数点在数中的位置是固定不变的数,数的最高位为符号位,小数点可在符号位之后,也可在数的末尾,小数点本身不需要表示出来,它是隐含的。 缺点:只有纯小数或整数才能用定点数表示; ②浮点数:小数点在数中的位置是浮动的、不固定的数。 一般浮点数既有整数部分又有小数部分,通常对于任何一个二进行制数N,总可以表示成:N=±2P×S N、P、S均为二进制数, P为N的阶码,一般为定点整数,常用补码表示,阶码指明小数点在数据中的位置,它决定浮点的表示范围 S为N的尾数,一般为定点小数,常用补码或原码表示,尾数部分给出了浮点数的有效数字位数,它决定了浮点数的精度,且规格化浮点数0.5≤|S|<1; 0.1B=( 1/2 )D =( 2-1)D 0.11B=(1/2 + 1/4 )D =( 2-1+2-2)D 0.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)D 101100B= 1011B * (22)D 101100B= 101.1B * (23)D 101100B= 10.11B * (24)D 101100B= 1.011B * (25)D 101100B= 0.1011B * (26110 一个浮点形式的尾数S若满足0.5≤|S|<1,且尾数的最高位数为1,无无效的0,则该浮点数称为规格化数;规格化数可以提高运算的精度。 S为原码表示,则S1=1 规格化数 S为补码表示N为正数,则S1 =1 N为负数,则S1=0

进制转换和原码补码

必备基础: 第一部分:进制转换 →二进制(Binary):由0~1构成,逢2进1 11B →3D 八进制(Octal):由0~7构成,逢8进1 11Q →9D 十进制(Decimal):由0~9构成,逢10进1 111D →111D 十六进制(Hex):由0~9、A~F构成,逢16进1 11H →17D →两个基本概念 基数:n进制基数为n 111.11D = 1*102 + 1*101 + 1*100 + 1*10-1 + 1*10-2 位权:小数点左边第k位位权为:基数k-1 小数点右边第k位位权为:基数-k →进制转换 1.其他进制→十进制(按权展开求和法) 123.45D = 1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 11001.11B = 1*24 + 1*23 + 1*20 + 1*2-1 + 1*2-2 = 16+8+1+0.5+0.25 = 25.75D 123.4Q = 1*82 + 2*81 + 3*80 + 4*8-1 = 64+16+3+0.5 = 83.5D 123.4H = 1*162 + 2*161 + 3*160 + 4*16-1 = 256+32+3+0.25 = 291.25D 2.十进制→其他进制 →整数部分:基数除法,倒序取余。 →小数部分:基数乘法,顺序取整。 76.375D = 1001 100.011 B = 114.3 Q = 4C.6 H 276 0.375*2=0.75-------0 ↓ 38------0 ↑ 0.75*2=1.5--------1↓ 19------0 ↑ 0.5*2=1----------1↓ 9------1 ↑ 4------1 ↑ 2------0 ↑ 1------0 ↑ 0------1 ↑ 8 76 = 114Q 0.375D = 0.3Q 9-----4 ↑ 0.375*8 = 3------3 ↓

原码、反码、补码详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有 不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 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 二. 原码, 反码, 补码的基础概念和计算方法. 在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码 方式. 1. 原码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [+1]原 = 0000 0001 [-1]原 = 1000 0001 第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

计算一个二进制或者十进制的数的原码,反码和补码

import java.util.Scanner; publicclass RadixChange { staticint byteNumber = 8; // 将输入的操作数转换成八位二进制有符号整数,即得到这个数的原码; publicstatic String decimalToBinary(String operand, int choice) { String opeString = " " + operand; String returnVal = null; opeString = opeString.trim(); // char [] src={'0','0','0','0','0','0','0'}; if (choice == 0) { returnVal = Integer.toString( new Integer(operand).intValue(), 2); } else { returnVal = opeString; } /** * 将二进制数据用八位二进制原码表示 */ // 如果是有符号二进制 if (choice == 1) { if (returnVal.codePointAt(0) == 48) for (int i = returnVal.length(); i

什么是原码反码补码

什么是原码反码补码 1100110011 原 1011001100 反除符号位,按位取反 1011001101 补除符号位,按位取反再加1 正数的原反补是一样的 ◆一个正数的补码和其原码的形式相同。 如果定义了一个整型变量i: int i;/*定义为整型变量*/ i=lO;/*给i赋以整数10*/ 十进制数10的二进制形式为1010,在微机上使用的C编译系统,每一个整型变量在内存中占2个字节。 图2.2(a)是数据存放的示意图。图2.2(b)是数据在内存中实际存放的情况。 图2.2 ◆求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。 例如求-10的补码:①取-10的绝对值10;②10的绝对值的二进制形式为1010; ③对1010取反得1111111111110101(一个整数占16位);④再加1得1111111111110110,见图2.3。

整数的16位中,最左面的一位是表示符号的,该位为0,表示数值为正;为1 则数值为负。 北桥,南桥是主板上芯片组中最重要的两块了.它们都是总线控制器.他们是总线控制芯片.相对的来讲,北桥要比南桥更加重要.北桥连接系统总线,担负着cpu 访问内存的重任.同时连接这AGP插口,控制PCI总线,割断了系统总线和局部总线,在这一段上速度是最快的.南桥不和CPU连接通常用来作I/O和IDE设备的控制.所以速度比较慢.一般情况下,南桥和北桥中间是PCI总线. 1。南桥和北桥芯片主要区别是什么? 南桥主要是负责IO 北桥用于CPU和内存、显卡、PCI交换数据 2。如何巧妙辨别南桥和北桥芯片? 用功能辨别南桥芯片和北桥芯片: 北桥 它主要负责CPU与内存之间的数据交换,并控制AGP、PCI数据在其内部的传输,是主板性能的主要决定因素。随着芯片的集成度越来越高,它也集成了不少其它功能。如:由于Althon64内部整合了内存控制器;nVidia在其NF3 250、NF4等芯片组中,去掉了南桥,而在北桥中则加入千兆网络、串口硬盘控制等功能。现在主流的北桥芯征的牌子有VIA、NVIDIA及SIS等。 当然这些芯片的好坏并不是由主板生产厂家所决定的,但是主板生产商采取什么样的芯片生产却是直接决定了主板的性能。如:同样是采用VIA的芯片,性能上则有KT600>KT400A>KT333>KT266A等。目前主流的AMD平台上,可选的芯片组有:KT600、NF2、K8T800、NF3等;对于INTEL平台,则有915、865PE、PT880、845PE、848P等。 南桥 南桥芯片主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等等。常见的有VIA的8235、8237等;INTEL的有CH4、CH5、CH6等;nVIDIA 的MCP、MCP-T、MCP RAID等。在这部分上,名牌主板与一般的主板并没有很大的差异,但是名牌主板凭着其出色的做工,还是成为不少人的首选。而不排除一部分质量稍差的主板为了在竞争中取得生存,可能会采用功能更强的南桥以求在功能上取胜。 用芯片在主版上的位置辨别南桥芯片和北桥芯片: 北桥芯片就是位于和CPU插槽附近的一块芯片,其上面一般都覆盖了散热片

原码反码补码移码

原码、反码、补码、移码 正码、补码、反码、移码 数在计算机中是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是负。 反码 = 原码(除符号位外)每位取反; 补码 = 反码 + 1; 反码 = 补码 - 1; 移码 = 补码符号位取反 以下都以8位整数为例, 原码就是这个数本身的二进制形式。 例如 0000001 就是+1 1000001 就是-1 正数的反码和补码都是和原码相同。 负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。 [-3]补=[10000011]补=11111101 一个数和它的补码是可逆的。 为什么要设立补码呢? 第一是为了能让计算机执行减法: [a-b]补=a补+(-b)补 第二个原因是为了统一正0和负0 正零:00000000 负零:10000000 这两个数其实都是0,但他们的原码却有不同的表示。 但是他们的补码是一样的,都是00000000 特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)[10000000]补 =[10000000]反+1 =11111111+1 =(1)00000000 =00000000(最高位溢出了,符号位变成了0)

有人会问 10000000这个补码表示的哪个数的补码呢? 其实这是一个规定,这个数表示的是-128 所以n位补码能表示的范围是 -2^(n-1)到2^(n-1)-1 比n位原码能表示的数多一个 又例: 1011 原码:01011 反码:01011 //正数时,反码=原码 补码:01011 //正数时,补码=原码 -1011 原码:11011 反码:10100 //负数时,反码为原码取反 补码:10101 //负数时,补码为原码取反+1 0.1101 原码:0.1101 反码:0.1101 //正数时,反码=原码 补码:0.1101 //正数时,补码=原码 -0.1101 原码:1.1101 反码:1.0010 //负数时,反码为原码取反 补码:1.0011 //负数时,补码为原码取反+1 总结: 在计算机内,定点数有3种表示法:原码、反码和补码 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 1、原码、反码和补码的表示方法 (1)原码:在数值前直接加一符号位的表示法。 例如:符号位数值位 [+7]原= 0 0000111 B [-7]原= 1 0000111 B 注意:a. 数0的原码有两种形式:

进制转换+原码反码补码课堂小测验(有答案)

1、假设某计算机的字长为8位,则十进制数(-66)的补码为_______ [答案:C] A. 01000010 B. 11000010 C. 10111110 D. 10111111 2、假设某计算机的字长为8位,则十进制数(+75)的反码为_______ [答案:A] A. 01001011 B. 11001011 C. 10110100 D. 10110101 3、执行下列二进制数算术加运算10101010+00101010其结果是_______ [答案:A] A. 11010100 B. 11010010 C. 10101010 D. 00101010 4、对于正数,其原码,反码和补码是_______ [答案:A] A. 一致的 B. 不一致的 C. 互为相反的 D. 互为相补的 5、已知8位机器码是10110100,若其为补码时,表示的十进制真值是_______ [答案:A] A. -76 B. -74 C. 74 D. 76 6、已知[X]补=10111010,求X(真值)______。 [答案:A] A. -1000110 B. -1000101

C. 1000100 D. 1000110 7、写出 (176.5)8 的按权展开式。 [答案:(176.5)8 = 182+781 +680 +58-1] 8、(27B.7C)H = (10 0111 1011.0111 11 ) B 9、(36)16= ( 54 )10 10、(456)10 = ( 710 )8 11、 (54)10 = ( 36 )16 12、(1C8)16 = ( 710 )8 13、如果(42)x=(2A)H,则x为_______ [答案:C] A. 2 B. 8 C. 10 D. 16 14、微机内存容量的基本单位是_______ [答案: B] A. 字符 B. 字节 C. 二进制位 D. 扇区 15、十进制数113.25转换成对应的十六进制数是_____________H [答案:B] A. 71.6 B. 71.4 C. 73.4 D. 73.6 16、存储器的1KB存储容量表示_______ [答案: B] A. 1024个二进制位 B. 1024个字节 C.

进制转换及原码反码补码练习题

进制转换练习题 【例题1-1】十进制数1000对应二进制数为______,对应十六进制数为______。 供选择的答案 A:①1111101010 ②1111101000 ③1111101100 ④1111101110 B:①3C8 ②3D8 ③3E8 ④3F8 【例题1-2】十进制小数为0.96875对应的二进制数为______,对应的十六进制数为______。 供选择的答案 A:①0.11111 ②0.111101 ③0.111111 ④ 0.1111111 B:①0.FC ②0.F8 ③0.F2 ④0.F1 【例题1-3】二进制的1000001相当十进制的______,二进制的100.001可以表示为______。 供选择的答案 A:①62 ②63 ③64 ④65 B:①23+2–3②22+2–2③23+2–2④22+2–3 【例题1-4】十进制的100相当于二进制______,十进制的0.110011相当二进制的______。 供选择的答案 A:①1000000 ②1100000 ③1100100 ④1101000 B:①2–1+2–2+2–4+2–5②1–(2–3+2–4) ③1+(–2–3–2–4) ④1–2–3–2–4–2–6 【例题1-5】八进制的100化为十进制为______,十六进制的100化为十进制为______。 供选择的答案 A:①80 ②72 ③64 ④56 B:①160 ②180 ③230 ④256 【例题1-6】在答案群所给出的关系式中正确的为______,在给出的等式中不正确的为______。 供选择的答案 A:①0.1112<0.7510②0.78>0.C16

原码、反码与补码知识讲解

2.2 原码、反码与补码 在计算机内的数(称之为“机器数”)值有3种表示法:原码、反码和补码。所谓原码就是带正、负号的二进制数,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。由此可见,这三种表示法中,关键是负数的表示方式不一样。 2.2.1 正负数表示、定点数与浮点数 在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。 规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮动的数称为“浮点数”。 2.2.2 原码 原码表示法是定点数的一种简单的表示法。用原码表示带符号二进制数时,符号位用0表示正,1表示负;数值位保持不变。原码表示法又称为符号-数值表示法。 1. 小数原码表示法 设有一数为x,则原码表示可记作[x]原(下标表示)。例如,X1= +1010110 ;X2= -1001010 原码表示数的范围与二进制位数有关。设二进制小数X=±0.X1X2…Xm,则小数原码的定义如下: 例如:X=+0.1011时,根据以上公式可得[X]原=0.1011;X=-0.1011时,根据以上公式可得[X]原= 1-(-0.1011)=1.1011=1.1011 当用8位二进制来表示小数原码时,其表示范围为:最大值为0.1111111,其真值约为(0.99)10 ;最小值为1.1111111,其真值约为(-0.99)10。根据定义,小数“0”的原码可以表示成0.0…0或1.0…0。 2. 整数原码表示法 整数原码的定义如下: 例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101 当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。同样,整数“0”的原码也有两种形式,即00…0和10…0。 2.2.3 反码 用反码表示带符号的二进制数时,符号位与原码相同,即用0表示正,用1表示负;数值位与符号位相关,正数反码的数值位和真值的数值位相同;而负数反码的数值位是真值的数值位按位变反。 1. 小数反码表示法 设二进制小数X=±0.x1x2…xm,则其反码定义为: 例如,X=+0.1011时,根据以上公式可得[X]反=0.1011;当X=-0.1011时,根据以上公式可得[X]反=2-2-4+X=10.0000-0.0001-0.1011=1.0100。根据定义,小数“0”的反码有两种表示形式,即0.0…0和1.1…1。 2. 整数反码表示法 设二进制整数X=±Xn-1Xn-2…X0,则其反码定义为: 例如,X=+1001时,根据以上公式可得[X]反= 01001;当X=-1001时,根据以上公式可得[X]反= (25-1)+X= (100000-1)+(-1001)= 11111-1001=10110 同样,整数“0”的反码也有两种形式,即00…0和11…1。

原码补码和反码的具体定义

原码补码和反码的具体定义 数在计算机中是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是副。以下都以8位整数为例, 原码就是这个数本身的二进制形式。 例如 0000001 就是+1 1000001 就是-1 正数的反码和补码都是和原码相同。 负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。 [-3]补=[10000011]补=11111101 一个数和它的补码是可逆的。

为什么要设立补码呢? 第一是为了能让计算机执行减法: [a-b]补=a补+(-b)补 第二个原因是为了统一正0和负0 正零:00000000 负零:10000000 这两个数其实都是0,但他们的原码却有不同的表示。 但是他们的补码是一样的,都是00000000 特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!) [10000000]补 =[10000000]反+1 =11111111+1 =(1)00000000 =00000000(最高位溢出了,符号位变成了0) 有人会问 10000000这个补码表示的哪个数的补码呢? 其实这是一个规定,这个数表示的是-128

所以n位补码能表示的范围是 -2^(n-1)到2^(n-1)-1 比n位原码能表示的数多一个 又例: 1011 原码:01011 反码:01011 //正数时,反码=原码 补码:01011 //正数时,补码=原码 -1011 原码:11011 反码:10100 //负数时,反码为原码取反 补码:10101 //负数时,补码为原码取反+1 0.1101 原码:0.1101 反码:0.1101 //正数时,反码=原码 补码:0.1101 //正数时,补码=原码 -0.1101 原码:1.1101

进制转换+原码反码补码课堂小测验(有答案)doc资料

进制转换+原码反码补码课堂小测验(有答案)

精品文档 收集于网络,如有侵权请联系管理员删除 1、假设某计算机的字长为8位,则十进制数(-66)的补码为_______ [答案:C] A. 01000010 B. 11000010 C. 10111110 D. 10111111 2、假设某计算机的字长为8位,则十进制数(+75)的反码为_______ [答案:A] A. 01001011 B. 11001011 C. 10110100 D. 10110101 3、执行下列二进制数算术加运算10101010+00101010其结果是_______ [答案:A] A. 11010100 B. 11010010 C. 10101010 D. 00101010 4、 对于正数,其原码,反码和补码是_______ [答案:A] A. 一致的 B. 不一致的 C. 互为相反的 D. 互为相补的 5、 已知8位机器码是10110100,若其为补码时,表示的十进制真值是_______ [答案:A] A. -76 B. -74 C. 74 D. 76 6、已知[X]补=10111010,求X (真值)______。 [答案:A] A. -1000110 B. -1000101 C. 1000100 D. 1000110 7、写出 (176.5)8 的按权展开式。 [答案:(176.5)8 = 1?82+7?81 +6?80 +5?8-1] 8、(27B.7C)H = (10 0111 1011.0111 11 ) B 9、(36)16 = ( 54 )10 10、(456)10 = ( 710 )8 11、 (54)10 = ( 36 )16 12、(1C8)16 = ( 710 )8

带符号数的原码、反码与补码分析

一.带符号数的原码、反码与补码 所谓带符号数,其实就是一个二进制数据,它的最高位所代表的是符号,其余位是其“绝对值”。例如0101_0011,这个数据如果是带符号数,那么最高位的0就是代表这个数据为正数,其后的101-0011则代表这个数据的绝对值,为+83D。如果是1101_0011,则代表-83D。 1.1 原码 原码就是按照正数的符号位为0,负数的符号位为1,其他位就是数据的绝对值即可。例如当机器字长为8bit的二进制数时,它的最高位为符号位,因此其余的7bit位数据的绝对值。因此原码所能表示的数据范围是: - (2n-1-1)~+(2n-1-1) 当字长为8bit,则原码能表示的范围就是:-127~+127 例如83的原码就是:0101_0011 当字长为16bit,则原码能表示的范围就是:-32767~+32767 例如-83的原码就是:1000_0000_0101_0011 1.2 反码 对于一个带有符号位的二进制数来说,正数的反码与其原码相同,负数的反码为其原码除符号位外其余各位按位取反。 例如当字长为8bit时,+83D的反码就是:0101_0011,-83D的反码就是1010_1100 负数的反码与原码有很大的差别,一般情况下,反码主要用来当做求二进制数补码的中间形式。反码所表示的数据范围与原码相同: - (2n-1-1)~+(2n-1-1) 1.2 补码 正数的补码与其原码相同,负数的补码为其反码在最低位加1。 例如: X=+101_1011 [X]原码=0101_1011 [X]补码=0101_1011 X=-101_1011 [X]原码=1101_1011 [X]补码=1010_0101 补码表示的范围是: - 2n-1~+(2n-1-1)

大学计算机2.理解原码,反码和补码

(转)理解原码,反码和补码 相信大家看到这个标题都不屑一顾,因为在任何一本计算机基础知识书的第一章都有他们的解释,但是在书上我们只能找到一些简单的定义,看过之后不久就忘了。 数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚.(摘自<<数学发展史>>有空大家可以看看哦~,很有意思的). 为了能方便的与二进制转换,就使用了十六进制和八进制. 数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了. 假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为 (-127~-0 +0~127)共256个. 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits ( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)原+ (10000001)原= (10000010)原= ( -2 ) 显然不正确. 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算: ( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10 (00000001) 反+ (11111110)反= (11111111)反= ( -0 ) 有问题. ( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 反+ (11111101)反= (11111110)反= ( -1 ) 正确 问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大). 于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个. 注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下: ( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)补+ (11111111)补= (00000000)补= ( 0 ) 正确 ( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 补+ (11111110) 补= (11111111)补= ( -1 ) 正确 所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。看了上面这些大家应该对原码、反码、补码有了新的认识了吧!

原码反码补码及运算

原码,反码,补码及运算 一、定义 1.原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。 【例2.13】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 Y=+1011011 [Y]原码=11011011 [+1]原码=00000001 [-1]原码=10000001 [+127]原码=01111111 [-127]原码=11111111 原码表示的整数范围是: -(2n-1-1)~+(2n-1-1),其中n为机器字长。 则:8位二进制原码表示的整数范围是-127~+127 16位二进制原码表示的整数范围是-32767~+32767 2.反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。 【例2.14】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 [X]反码=01011011 Y=-1011011 [Y]原码=11011011 [Y]反码=10100100 [+1]反码=00000001 [-1]反码=11111110 [+127]反码=01111111 [-127]反码=10000000 负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。反码表示的整数范围与原码相同。 3.补码 正数的补码与其原码相同,负数的补码为其反码在最低位加1。 引入补码以后,计算机中的加减运算都可以统一化为补码的加法运算,其符号位也参与运算。 【例2.15】(1)X=+1011011 (2)Y=-1011011 (1)根据定义有:[X]原码=01011011 [X]补码=01011011 (2)根据定义有:[Y]原码=11011011 [Y]反码=10100100 [Y]补码=10100101 补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。 则:8位二进制补码表示的整数范围是-128~+127(-128 表示为10000000,无对应的原码和反码)16位二进制补码表示的整数范围是-32768~+32767 当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。 所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 4.补码与真值之间的转换 正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可

(数电知识)原码、反码与补码知识

2.1 原码、反码与补码 在计算机内的数(称之为“机器数”)值有3种表示法:原码、反码和补码。所谓原码就是带正、负号的二进制数,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。由此可见,这三种表示法中,关键是负数的表示方式不一样。 2.2.1 正负数表示、定点数与浮点数 在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。 规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮动的数称为“浮点数”。 2.2.2 原码 原码表示法是定点数的一种简单的表示法。用原码表示带符号二进制数时,符号位用0表示正,1表示负;数值位保持不变。原码表示法又称为符号-数值表示法。 1. 小数原码表示法 设有一数为x,则原码表示可记作[x]原(下标表示)。例如,X1= +1010110 ;X2= -1001010 原码表示数的范围与二进制位数有关。设二进制小数X=±0.X1X2…Xm,则小数原码的定义如下: 例如:X=+0.1011时,根据以上公式可得[X]原=0.1011;X=-0.1011时,根据以上公式可得[X]原= 1-(-0.1011)=1.1011=1.1011 当用8位二进制来表示小数原码时,其表示范围为:最大值为0.1111111,其真值约为(0.99)10 ;最小值为1.1111111,其真值约为(-0.99)10。根据定义,小数“0”的原码可以表示成0.0…0或1.0…0。 2. 整数原码表示法 整数原码的定义如下: 例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101 当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。同样,整数“0”的原码也有两种形式,即00…0和10…0。 2.2.3 反码 用反码表示带符号的二进制数时,符号位与原码相同,即用0表示正,用1表示负;数值位与符号位相关,正数反码的数值位和真值的数值位相同;而负数反码的数值位是真值的数值位按位变反。 1. 小数反码表示法 设二进制小数X=±0.x1x2…xm,则其反码定义为: 例如,X=+0.1011时,根据以上公式可得[X]反=0.1011;当X=-0.1011时,根据以上公式可得[X]反=2-2-4+X=10.0000-0.0001-0.1011=1.0100。根据定义,小数“0”的反码有两种表示形式,即0.0…0和1.1…1。 2. 整数反码表示法 设二进制整数X=±Xn-1Xn-2…X0,则其反码定义为: 例如,X=+1001时,根据以上公式可得[X]反= 01001;当X=-1001时,根据以上公式可得[X]反= (25-1)+X= (100000-1)+(-1001)= 11111-1001=10110 同样,整数“0”的反码也有两种形式,即00…0和11…1。

原码与补码

原码 概念 原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位),该位为0表示正数,该位为1表示负数,其余位表示数值的大小。 优点 简单直观;例如,我们用8位二进制表示一个数, +11的原码为00001011, -11的原码为10001011 缺点 原码不能直接参加运算,可能会出错。 例如数学上,1+(-1)=0, 而在二进制中 原码 00000001+10000001=10000010,换算成十进制为130。 显然出错了. 计算机中所有的数均用0,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。

在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零已补足n-1位。这种计算机的编码形式叫做原码。 记作X=[X]原。例如在字长n=8的机器内: 小数: [+0.1011]原=0.1011000 [-0.1011]原=1.1011000 整数: [+1011]原=00001011 [-1011]原=10001011 代码中的小数点”.”是在书写时为了清晰起见加上去的,在机器中并不出现。 原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。 一个字长为n的机器数能表示不同的数字的个数是固定的2^n 个,n=8时2^n=256;用来表示有符号数,数的范围就是-2^n-1~+2^n-1,n=8是这个范围就是-128~+127。但是在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255.没有符号位的数,称为无符号数。

计算机中的原码、反码和补码

大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即28(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~ 28-1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000(从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001,2表示为00000010,3表示为00000011,依次类推,那么最大的那个数255在8位二进制中就表示为最大的数11111111,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。比如我给你一个2个字节大小的二进制码,首先声明它表示的是无符号的整数:00000000 00000010,我们把前面的0省略,换算一下,它表示的也是数值2,和前面不同的是,它占了2个字节的内存。不同的类型占的内存空间不同,如在我的电脑中char是1个字节,int是4个字节,long是8个字节(你的可能不同,这取决于不同的计算机设置),它们的不同之处仅仅是内存大的能表示的不同的信息多些,也就是能表示的数范围更大些(unsigned int能表示的范围是0~28*4-1),至于怎么算,其实都是一样的,直接把二进制与十进制相互转换,二进制就是它在计算机中的样子,十进制就是我们所表示的数(误解:不同的计算机储存的原理 是不同的,取决于商家的喜好呢)。无符号的整数根本就没有原码、反码和补码。 只有有符号的整数才有原码、反码和补码的!其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数,最大的也相对应,但是那样不科学,下面来说说科学的方法。还是说一个字节的整数,不过这次是有符号的啦,1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,27*2还是256个数。首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-12 7,那你发现没有,如果这样的话那么一共就只有255个数了,因为10000000的情况没有考虑在内。实

原码、反码与补码的详细讲解

一、概述 大家都知道,一个十进制数在计算机中都是以二进制数的形式存储的。十进制数是有正负之分的,那么如何在计算机中来表示正号和负号呢? 我们通常使用二进制数的最高位来表示数的符号:“0”来表示正号,“1”来表示负号。 在计算机中整型数值数据的编码主要有: z原码 z反码 z补码 在开始讲述这三种编码方法前,我们首先介绍一下机器数、真值、模数的概念。 1.机器数 数(含符号)在机器中的编码表示。 2.真值 机器数所对应的真实数值。 3.模数 一个计量器的容量或与零等价的数。 z对于一个n位计数器,每1位有R种状态,每种状态代表1个数,从“0”开始计数。 z计数器所能计的数值的个数即模数。 z计数器的模数 = 计数器的最大值+1 。 z计数器的模数(R n)取决于基数(R)和位数(n)

例子01 2位十进制计数器的模数是多少? 解:R=10 n=2 模数=R n = 102 = 99(最大的2位十进制数)+1 = 100 例子02 8位二进制计数器的模数是多少? 解:R=2 n=8 模数=R n = 28 = 255(最大的8位二进制数)+1 = 256 4. 为什么使用编码来表示“数”? 为了方便计算机的处理,简化计算过程。 二、原码 1. 定义 022011 ≤

相关文档
最新文档