首页 > 其他分享 >计算机定点数和浮点数

计算机定点数和浮点数

时间:2023-03-25 10:01:09浏览次数:37  
标签:表示 计算机 尾数 浮点数 小数点 二进制 定点数 十进制

一、概念

1. 定点数

定点数表示法约定==计算机中所有数据的小数点位置固定==,其中,将小数点的位置固定在数据的最高位之前(或符号位之后)的数据表示称为定点小数,而将小数点固定在最低数位之后的数据表示称为定点整数。另外,++由于小数点位置固定,因此小数点不必再用符号表示,其位置也无需存储。++

  • 定点小数 设定点小数:x=X0.X1X2X3…Xn ① 符号位X0用来表示数的正负,小数点的位置是固定的,在计算机中不用去表示它。 ② X1~Xn是数值的有效部分,也称尾数;X1为最高有效位。 ③ 在计算机中定点小数主要用于表示浮点数的尾数,并没有高级语言数据类型与之对应。

  • 定点整数 设定点整数:x=X0X1X2…Xn ① 符号位X0用来表示正负。 ② X1~Xn是数值的有效部分。 ③ 小数点在Xn后面,可以省略掉。

  • 定点数表示的范围 定点数能表示的数据范围与下列因素有关: ① 机器字长。字长越长,其表示的数据范围就越大。 ② 所采用的机器数表示方法。补码和移码表示所能表示的数据范围比原码和反码所能表示的数据范围要多一个数。

2. 浮点数

  • 浮点数的表示形式 ① ++浮点数中的小数点位置并不固定,也就是小数点位置可以浮动++,这也是浮点数得名的原因。 ② 为了扩大浮点数的表示范围和提高其表示精度,二进制浮点数表示采用了类似十进制科学记数法的表示方法,任意一个二进制数N都可以表示成如下形式:N=2^E*M ③ 采用这种方法,二进制浮点数可表示成阶码E和尾数M两部分,其中阶码E是定点整数,而尾数M是定点小数。==阶码的位数决定数据的表示范围,阶码的位数越多,能表示的数据范围就越大,而阶码的值决定了小数点的位置;尾数的尾数决定数据表示的精度。阶码长度相同时,分配给尾数的数位越多,数据表示的精度就越高。==

  • 浮点数的表示范围 ① 显然当阶码为最大值,尾数为最大值时,浮点数为正数最大值;而当阶码为最小值,尾数为正数最小值时,浮点数为正数最小值,这个值也就是浮点数的最小精度。同理,当阶码为最大值,尾数为最小负数时,浮点数为负数最小值;而当阶码为最小值,尾数为负数最大值时,浮点数为负数最大值。 ② 浮点数有效扩大了数据表示范围,但受计算机字长限制,浮点数仍然存在==溢出现象==。

  • 浮点数的规格化 ① 同一浮点数可能存在多种表示形式,如0.011112^101 还可以表示成0.111102^100。尾数小数点的位置不同,就会有不同的尾数和阶码组合,这将给浮点数的表示带来麻烦。为了使浮点数的表示形式唯一并进一步提高数据的表示精度,通常需要对浮点数进行规格化处理。 ② 所谓规格化处理,就是==使尾数真值最高有效位为1==,也就是尾数的绝对值应大于等于0.1(二进制)或0.5(十进制)。

二、重点

1. 将十进制数转换为浮点数 例:将十进制数20.59375转换成IEEE754单精度浮点数的十六进制机器码 ① 首先我们要分别将整数和小数部分转换成二进制数: 20的二进制为10100,0.59375的二进制为0.10011,所以20.59375的二进制表示为10100.10011 ② 移动小数点,使尾数变成1.M的形式(规格化): 10100.10011=1.010010011*2^4 ③ 分析得: S=0,E=e+127=4+127=131=10000011,M=010010011

所以32位浮点数的二进制存储格式为: image.png ④ 最终的机器码为:0100 0001 1010 0100 1100 0000 0000 0000

对应的十六进制为: 4 1 A 4 C 0 0 0

2. 将浮点数转换为十进制数 例:求IEEE754单精度十六进制浮点数(C1360000)对应的十进制 ① 将十六进制数展开成二进制数为:1100 0001 0011 0110 0000 0000 0000 0000 ② 从浮点数中分离出S、E、M: S=1 符号位为:负 E=100 0001 0 M=011 011 ③ 计算得:e=E-127=00000011=3(十进制) 实际尾数为:1.M=1.011011 移动小数点,实际尾数为:1011.01 ④ 将其转换为十进制数:1011是11,0.011是0.375,所以十进制数为 -11.375。

标签:表示,计算机,尾数,浮点数,小数点,二进制,定点数,十进制
From: https://blog.51cto.com/baiblog/6148927

相关文章

  • 浅谈计算机组成原理(一)
    最近在学计算机组成原理,觉得光听课有点空,就回过头来写写博客,记录一下学习所得。第一次写博客,若有错误,请各位多多包涵。 计算机的基本组成遵守冯诺依曼体系......
  • 计算机基础
    计算机基础逻辑门逻辑门是一种常见的元器件,能够执行一种或多种逻辑运算。常见的逻辑门有:与门(ANDgate)、或门(ORgate)、非门(NOTgate)、异或门(XORgate)等。与或非是计算机......
  • 计算机网络-------------IP地址与子网划分
                           ......
  • 计算机核心基础知识
    目录’一、编程与编程语言(1)、什么是语言(2)、什么是编程(3)、什么是编程语言二、计算机本质三、计算机五大组成部分(1)、控制器(2)、运算器(3)、存储器(4)、输出设备(5)......
  • 计算机语言的发展史 03.23
    计算机语言的发展史机器语言我们都知道计算机基本方式都是基于二进制的方式二级制:010111001010110010110100这种代码是直接输入给计算机使用的不经过任何的转换汇编......
  • 2023.3.22 计算机导引·课堂笔记
    学习没有捷径,只有烂笔头               ......
  • 面试笔记——计算机网络
    原文链接:javaguide常见面试题OSI和TCP/IP网络分层模型OSI七层模型OSI七层模型是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示:......
  • 02计算机网络模型tcp/ip
    1.数据封装过程从上到下:应用层-----》传输层(进行封装,添加tcp头部)-----》网络层(进行封装,添加ip头部)------》数据链路层(进行封装,添加mac头部)------》物理层(0,1)2.数据解封......
  • 计算机网络 | 自顶向下
    应用层传输层无连接运输UDP报文段结构源端口号:16位;目的端口号:16位;长度:16位,报文段的总长度;检验和:16位,报文段中所有16位字的和进行反码运算;应用数......
  • [嵌入式RTOS]记录一下因浮点数转为字符串导致精度损失所踩的坑
    1.起因:工作中对接平台需要将设备的GPS数据传给平台,但是平台采用的不是回调函数将数据直接作为参数返回而是格式化的字符串命令,所以需要将double类型的gps数据格式化输出到......