全站数据
8 4 2 0 5 8 1

一个寄存器怎么存储实数

贵州教师考试 | 简单学习,快乐成才!         
问题更新日期:2024-10-20 18:28:46

问题描述

一个寄存器怎么存储实数急求答案,帮忙回答下
精选答案
最佳答案

1.整数部分:直接转换成二进制

2.小数部分:用2乘十进制小数,可以得积,将积的整数部分取出。在用2乘余下的小数部分,如此循环直到整数部分为0或者为1,此时的0或1为二进制的最后一位

ex:

十进制小数35.8125转换成二进制小数

(35)10=(100011)2

0.8125*2=1.625---------1

0.6250*2=1.250---------1

0.2500*2=0.500---------0

0.5000*2=1.000---------1

(0.8125)10=(0.1101)2

小数是如何在内存中存储?

小数在内存中,不管是单精度还是双精度,存储分为3部分

1.符号位

2.指数位//用科学计数法存储指数数据

3.尾数部分

其中指数部分有正负,偏移量为127

float符号占1位,指数8位,尾数部分23位

double 符号占1位,指数11位,尾数部分52位

以35.8125为例来分析计算机如何存储的.

35.8125 二进制数据为 100011.1101

这里我们把二进制写成1.000111101×10^5.从这里我们可以分析出来小数点后面000111101是尾数部分,而指数部分就是127+5(10000100)

这样我们就得出35.8125 在内存中存储为 0 100 0010 0000 1111 0100 0000 0000 0000

0100 0010 0000 1111 0100 0000 0000 0000 (二进制)

420F4000(十六进制)

相关资源:实型数和实型变量在内存中的存放形式-c语言课件_内存实型数据尾数...

其他回答

一个寄存器通常只能存储整数,因为整数可以直接转换成二进制形式进行存储和计算。但是,实数(包括浮点数和定点数)由于带有小数部分,不能直接转换成二进制形式进行存储和计算。因此,需要通过一定的编码方式将实数转换成二进制形式进行存储。常见的实数编码方式有浮点数和定点数。浮点数采用科学计数法表示实数,包括符号位、尾数和阶码三部分,其中尾数和阶码都用二进制表示。

定点数则采用定点小数表示实数,可以将小数点固定在某一个位置,然后将整数和小数部分都用二进制表示。在存储实数的时候,需要注意精度问题,以及溢出和下溢的情况,以保证计算的正确性和精度。