定点数分为定点整数和定点小数
定点整数: 小数点在最低位之后 如 10101.0
定点小数: 小数点在最高位只前 如 0.010101
码制 |
定点整数 |
定点小数 |
原码 |
-(2^(n-1) - 1) ~ +(2^(n-1) - 1) |
-(1 - 2^-(n-1)) ~ +(1 - 2^-(n-1)) |
反码 |
-(2^(n-1) - 1) ~ +(2^(n-1) - 1) |
-(1 - 2^-(n-1)) ~ +(1 - 2^-(n-1)) |
补码 |
-(2^(n-1)) ~ +(2^(n-1) - 1) |
-1 ~ +(1 - 2^-(n-1)) |
移码 |
-(2^(n-1)) ~ +(2^(n-1) - 1) |
-1 ~ +(1 - 2^-(n-1)) |
机器数有无符号数于有符号数之分,有符号数的第一位是符号位。
带符号数的机器数可采用原码,分码,补码,移码四种,统称码制。
1 原码 就是8位二进制数,头一位是符号位。
[+1] = 0 0000001 [-1] = 1 0000001
[+127] = 0 1111111 [-127] = 1 1111111
[+0] = 0 0000000 [-0] = 1 0000000
[+0.5] = 0 <> 1000000 [-0.5] = 1 <> 1000000 // <> 表示小数点
2 反码 正数的反码与原码相同,负数的反码除符号位全部取反
[-1] = 1 1111110 [-127] = 1 0000000
[-0.5] = 1 <> 0111111
[-0] = 1 1111111
3 补码 正数的补码与原码相同,负数的补码是最后一位+1
[-1] = 1 1111111 [-127] = 1 0000001
[-0.5] = 1 <> 1000000
[-0] = 1 0 0000000 = 0 0000000 (把进位去掉) 所以补码的+0和-0是一样的
4 移码 不管正负 将该数的补码符号位取反
[+1] = 1 0000001 [-1] = 0 1111111
[+127] = 1 1111111 [-127] = 0 0000001
[+0.5] = 1 <> 1000000 [-0.5] = 0 <> 1000000
[+-0] = 1 0000000 0的正负移码也是相同
浮点数
浮点数 = 符号位 + 阶位 + 尾数位
参数 |
单精度浮点数 |
双精度浮点数 |
扩展精度浮点数 |
浮点数字长 |
32 |
64 |
80 |
尾数长度 |
23 |
52 |
64 |
符号位 |
1 |
1 |
1 |
指数长度 |
8 |
11 |
15 |
最大指数 |
+127 |
+1023 |
+16383 |
最小指数 |
-126 |
-1022 |
-16382 |
指数偏移量 |
+127 |
+1023 |
+16383 |
实数范围 |
10^-38 ~ 10^38 |
10^-308 ~ 10^308 |
10^-4932 ~ 10^4932 |
例子们在下面
12.5:
1. 整数部分12,二进制为1100; 小数部分0.5, 二进制是.1,先把他们连起来,从第一个1数起取24位(
后面补0):
1100.10000000000000000000
这部分是有效数字。(把小数点前后两部分连起来再取掉头前的1,就是尾数)
2. 把小数点移到第一个1的后面,需要左移3位, 加上偏移量127:127+3=130,二进制是10000010,这是
阶码。
3. -12.5是负数,所以符号位是1。把符号位,阶码和尾数连起来。注意,尾数的第一位总是1,所以规定
不存这一位的1,只取后23位:
1 10000010 10010000000000000000000
把这32位按8位一节整理一下,得:
11000001 01001000 00000000 00000000
就是十六进制的 C1480000.
2.025675
1. 整数部分2,二进制为10; 小数部分0.025675, 二进制是.0000011010010010101001,先把他们连起来
,从第一个1数起取24位(后面补0):
10.0000011010010010101001
这部分是有效数字。把小数点前后两部分连起来再取掉头前的1,就是尾数: 00000011010010010101001
2. 把小数点移到第一个1的后面,左移了1位, 加上偏移量127:127+1=128,二进制是10000000,这是阶
码。
3. 2.025675是正数,所以符号位是0。把符号位,阶码和尾数连起来:
0 10000000 00000011010010010101001
把这32位按8位一节整理一下,得:
01000000 00000001 10100100 10101001
就是十六进制的 4001A4A9.
-1.99744
还需要详细说吗?
如果只有小数部分,那么需要右移小数点. 比如右移3位才能放到第一个1的后面, 阶码就是127-3=124.
补充一个浮点二进制数手工转换成十进制数的例子:
假设浮点二进制数是 1011 1101 0100 0000 0000 0000 0000 0000
按1,8,23位分成三段:
1 01111010 10000000000000000000000
最后一段是尾数。前面加上"1.", 就是 1.10000000000000000000000
下面确定小数点位置。阶码是01111010,加上00000101才是01111111(127),
所以他减去127的偏移量得-5。(或者化成十进制得122,122-127=-5)。
因此尾数1.10(后面的0不写了)是小数点右移5位的结果。要复原它就要左移5位小数点,得0.0000110,
即十进制的0.046875
最后是符号:1代表负数,所以最后的结果是 -0.046875
还要注意其他机器的浮点数表示方法可能与此不同. 不能任意移植.
分享到:
相关推荐
在计算机科学中,数制是数字系统的基础,用于表示数值。本文档主要讲解了计算机中常见的四种数制:二进制、八进制、十进制和十六进制。 首先,数制是一种进位计数制,它遵循特定的基数和进位规则。例如,十进制数有...
数据存储是计算机科学的基础概念之一。计算机使用二进制数据存储,即使用0和1两个数字来表示信息。一个bit是计算机中最小的存储单元,可以存储一个二进制数字。bit-pattern是指使用多个bit来表示信息的方法,例如...
计算机信息基础知识是计算机科学与技术的基础,了解计算机信息基础知识对于学习计算机科学与技术至关重要。本资源摘要信息涵盖了计算机信息基础知识的主要内容,包括计算机概述、计算机信息表示、信息处理、计算机...
- 1.2 计算机科学:涵盖了数据处理、算法设计、软件工程和计算机硬件等多个方面。 - 1.3 机内信息表示基础:介绍了二进制数系统,它是计算机内部表示和处理数据的基础。 举例来说,数字35在不同的数制下有不同的...
- 计算机科学的基础数字进制,如二进制(1011等)和十六进制(如1.1, 1.2, 1.3等)表示方法。 2. 计算机语言与编码 - ASCII码是一种字符编码标准,用于计算机系统中的文本表示。内容中的"AASCII B C D E"暗示了...
线性表是计算机科学中一种基础且重要的数据结构,它由相同数据类型的n(n≥0)个数据元素构成的有限序列。线性表是最简单、最常用的数据结构,其特性在于元素之间存在顺序关系,每个元素都有一个直接前驱和一个直接...
在计算机科学中,数据以二进制的形式存在,是最基本的处理单位。数据本身是没有意义的,它需要解释才能转化为有意义的信息。 信息是数据的解释,是数据中所包含的意义。信息论奠基者香农定义信息为消除随机不确定性...
计算机科学与技术导论试卷及其答案涵盖了计算机科学与技术的基础知识,包括计算机系统、存储器、输入输出设备、操作系统、数据通信、计算机病毒等方面的知识点。下面将对试卷中出现的知识点进行详细的解释和分析。 ...
微机原理微型计算机的运算基础与信息表示方法是计算机科学中的一门重要课程,本教案涵盖了微机原理微型计算机的运算基础与信息表示方法的知识点。 2.1 进位计数制及其之间的转换 --------------------------- 进位...
第1章 计算机科学基础知识 1.1 考试大纲 (1)数制及其转换 二进制、八进制、十进制和十六进制等常用数制及其相互转换 (2)计算机内数据的表示 数的表示 非数值表示(字符和汉字的表示、声音表示、图像表示)...
1.2.1数制的基本概念 1.2.2数制间的转换 1.2.3计算机内的数据 1.2.4字符的编号 1.2 信息的表示与存储 计算机基础知识全文共45页,当前为第3页。 1946年,世界上第一台电子数字积分式计算机ENIAC(Electronic ...
总结来说,数的产生、十进制计数法和亿以上数的认识是理解计算机科学基础的重要部分。这些基础知识不仅影响到编程语言的使用,还涉及到数据处理、算法设计以及各种计算问题的解决方案。因此,对于软件开发者来说,...
数据结构与算法是计算机科学的基础,对于考研或自学的同学来说,深入理解这一部分至关重要。本文将围绕标题"【考研或自学数据结构1.2】"和描述中的"算法基本概念,时间复杂度和空间复杂度"展开,结合压缩包内的文件...
本文将对计算机基础知识进行概述,包括计算机系统的组成、计算机语言、计算机软件、计算机硬件、计算机系统的基本工作原理、数和字符的表示、计算机系统的数据单位、微型计算机系统等方面的知识。 1.1 计算机系统的...
在IT领域,数据结构与算法是计算机科学的基础,它们直接影响着程序的效率和设计。本节我们将深入探讨“树”和“二叉树”的概念,这是数据结构中的重要组成部分。 首先,我们要理解“数据结构”。数据结构是组织、...
计算机专业基础是计算机科学与技术学科(一级学科)、计算机技术工程领域硕士生入学考试的专业基础课。考试对象为参加东北大学计算机科学与工程学院2020年全国硕士研究生入学考试的准考考生。 二、考试形式与试卷...
计算机科学与技术是信息技术的基础,本试卷主要涵盖了计算机系统的基础知识,包括计算机组成、性能指标、数据存储、网络通信以及操作系统等方面。以下是根据题目内容详细解释的知识点: 1. **字节表示无符号整数的...
在计算机科学中,关系是一个非常重要的概念,它是数据库和数据挖掘的基础。 1.3 选择题 在这里,我们看到了一些选择题。选择题是考查学生对数据结构的基本概念和定义的理解。这些选择题可以帮助学生巩固对数据结构...
数据结构是计算机科学中至关重要的一个领域,它研究的是数据的组织方式以及这些组织方式对算法性能的影响。在计算机程序中,数据结构的选择直接影响到数据的存取效率和程序的复杂性。考研中,深入理解和掌握数据结构...